home *** CD-ROM | disk | FTP | other *** search
/ Merciful 2 / Merciful - Disc 2.iso / software / i / imagine_compendiumappen.txt < prev    next >
Text File  |  1995-10-14  |  162KB  |  2,976 lines

  1.              The Imagine Compendium: Appendices
  2.  
  3.  
  4. ========================   INDEX   ==========================================
  5.   APPENDIX A:  DETAIL TUTORIAL (by Steve Worley)
  6.  
  7.   APPENDIX B:  FORMS TUTORIAL (by Steve Worley)
  8.  
  9.   APPENDIX C:  VIDEOTAPE
  10.     i) dumping to videotape
  11.     ii) comments on dumping to videotape
  12.     iii) more comments on dumping to videotape
  13.   APPENDIX D:  CENTAUR TAPE:
  14.     i) review
  15.     ii) second review
  16.   APPENDIX E:  SURFACE MASTER
  17.     i) Advertisement
  18.     ii) Review 1
  19.     iii) Review 2
  20.     iv) Additional Details
  21.   APPENDIX F: TTDDD (an excellent shareware package).
  22.     i) getting coordinates with TTDDD.
  23.     ii) making threads.
  24.   APPENDIX G:  WAY COOL PROJECTS
  25.     i) extruding picture
  26.     ii) rolling sphere
  27.     iii) 3-D font
  28.   APPENDIX H: Credits and email addresses
  29.  
  30. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  31.  
  32. APPENDIX A:  DETAIL TUTORIAL (by Steve Worley)
  33. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  34. This file is a tutorial introduction to the Detail Editor. It
  35. describes the way Imagine stores objects, how Imagine interacts with
  36. you to show the objects you are building, how you can build and
  37. manipulate these objects, and make complex objects formed of many
  38. sub-objects.
  39.  
  40. A later tutorial will describe the more advanced features of the
  41. Detail Editor which allows you to manipulate objects in much more
  42. complex ways, like cutting one object with another, making outlines 
  43. and filling them with faces, defining objects by successive cross 
  44. sections, and bending objects around tubes and spheres, and 
  45. even using outlines as a lathe guide. 
  46.  
  47. A third tutorial will be a more general discussion of the approaches
  48. to object creation, discussing how to plan and actually build your
  49. objects as opposed to what each menu item in the Detail Editor does.
  50.  
  51. This tutorial is more basic than most of my others. I realize
  52. that many people will be disappointed, but I feel it is necessary to
  53. give an introduction describing how objects are defined and how the
  54. standard controls in the all of the editors are used. New users will
  55. GREATLY appreciate a description of the goals of the Detail Editor and
  56. how objects are defined and used in Imagine before delving into a
  57. description of the suboptions of each menu item. For those of you who
  58. are looking for a more hard-core Detail tutorial, none to fear! It's
  59. my next project, and it will should blend into a nice, logical
  60. successor to this tutorial. Even those who scoff at this introduction
  61. might want to read it anyway; there are a lot of subtle points
  62. (especially about pick and select!) that are well worth learning
  63. about.
  64.  
  65. This tutorial describes the Detail Editor in Imagine version 1.1. There
  66. are only minor differences (Taut and Fracture) from version 1.0.
  67.  
  68.                    An Introduction to the Detail Editor
  69.                          Last Revised 6/11/91
  70.                            By Steven Worley
  71.  
  72. -------------------------------------------------------------------------
  73.                    I.  What are Imagine objects?
  74. -------------------------------------------------------------------------
  75.  
  76. When a computer program wants to draw a 3D object, it must have some
  77. way of internally representing it. Some modelers store each object as
  78. a bunch of 2 dimensional polygons- a 3D object is a formed from a
  79. whole bunch of these polygons pasted together. A cube might be defined
  80. as six 2D squares arranged in a group. Since our final picture just
  81. has to LOOK like it is solid, defining the outer surface is usually
  82. all we need to do to make it seem as if the objects ARE solid.
  83.  
  84. Any object can be defined as a bunch of flat polygons. Curved surfaces
  85. like a sphere can use a lot of polygons in order to approximate the
  86. surface closely; certain computer tricks (including a very important
  87. one called Phong shading) can smooth out the surface even more. Most
  88. of the 3D objects, or models, that you've ever seen in any 3D computer
  89. graphic were defined as polygons. Sometimes advanced programs define
  90. surfaces with a mathematical equation, or by a certain type of curve,
  91. and sometimes a computer model will have certain objects it "knows"
  92. how they should look (like a mathematically defined sphere or cone)
  93. but most use polygons for definition, Imagine included.
  94.  
  95. All objects in Imagine are defined as a bunch of triangles. Nothing
  96. more.  It is particularly easy for a computer to decide what a
  97. triangle would look like when viewed as a 3D image. Any more complex
  98. polygon (like a square or octagon) can be broken down into a bunch of
  99. triangles pretty easily.  Having only one "shape" to deal with is
  100. actually a convenience for us, as we don't have to worry about
  101. questions of what type of polygons a certain object is made of, or how
  102. to convert one type of polygon into another. The computer likes
  103. dealing only with triangles because it can optimize it's renderer, the
  104. program that actually draws the pictures, to expect and deal with just
  105. one shape simple instead of 246 different ones.
  106.  
  107. Although an object is made of only triangles (called FACES) it has
  108. points and edges which define where these faces go. If you think of a
  109. simple triangle, it has 3 defining points at the corners, three edges
  110. connecting these points, and one face which actually makes up the body
  111. of the triangle. Imagine can better deal with the objects by defining
  112. these sub-parts, and it allows us to manipulate the objects much more
  113. easily.
  114.  
  115. Every object has a number of defined POINTS. Imagine understands an
  116. EDGE to be a line segment that connects any two of these points. A
  117. face is defined by naming the three edges that make it up. Instead of
  118. storing nine numbers for each triangle (the X,Y,Z location of each
  119. corner) it just names the edges, which in turn name the points. This
  120. reduces the size of a description of an object considerably. It also
  121. helps in editing objects, since if you move a point, each face that it
  122. is part of will adjust itself to the include the new location of the
  123. point. The other alternative would be to have each face manually
  124. manipulated individually, which is obviously a big pain.
  125.  
  126. Think of a square. Imagine would store a square as two triangles that
  127. share one edge together. The square would actually contain FIVE edges
  128. (the four sides and the diagonal) and FOUR points (one at each of the
  129. corners.) It would have two faces, or triangles.  A cube is stored as
  130. twelve faces, formed by eighteen edges, which are in turn defined by
  131. eight points.
  132.  
  133. This definition of objects actually gives us some extra leeway in how
  134. we define our model. Imagine doesn't require your object to be
  135. connected at all; that is, your object could be two completely separate
  136. surfaces that never touch. You might want an object to be a flying
  137. logo. The letters don't actually touch and form one solid object; they
  138. are independent from each other. Imagine doesn't care; you can call
  139. any collection of points, edges, and faces an object. Imagine also
  140. gives you tools for splitting off part of an object (like a letter) or
  141. joining two parts together.
  142.  
  143. Since this is a computer model and not a physical one, we can violate
  144. physics and have objects self-intersect. You might overlap two spheres
  145. half-way and join them together to form one object. You'll only see the
  146. outer surface when you render the new double-sphere object. 
  147.  
  148. There actually are two objects that Imagine does not define as a group
  149. of points, edges, and faces: a perfect sphere and an infinite plane.
  150. These are the only exceptions to the normal definition of objects in
  151. Imagine. Well, OK, there's another. An axis containing NO points can
  152. still be manipulated as an object. It certainly won't show up in a
  153. render, but sometimes it's nice to use a lone axis as an invisible
  154. object in certain cases. You can also use the axis as the start of a
  155. brand new object.
  156.  
  157. There are certain "Editors" in Imagine that allow us to view and
  158. manipulate objects in different ways. Some editors let you place
  159. objects in scenes, or define how the objects change with time. The
  160. Detail Editor is where objects are usually created and modified. It
  161. allows low-level editing of objects; you can add points and faces by
  162. hand, move them, delete old ones and in general be as picky as you
  163. like in adjusting every point.
  164.  
  165. Defining objects point-by-point is obviously not very suited to
  166. complex objects, sometimes with THOUSANDS of points. There are more
  167. powerful controls that let you modify your object in more global ways.
  168. You can add pre-made 'primitive' objects like a cylinder or a torus
  169. (doughnut shape.)  These primitive objects have the points, edges, and
  170. faces that define it already defined. There are certain tools that
  171. let you draw an outline, say the profile of a chess pawn, which is
  172. converted to a three-dimensional `spun' object, as if it was chiseled
  173. out on a lathe. Other tools let you slice off parts of your object
  174. using knives that you can build yourself. In general, object creation
  175. is done with these powerful tools, and picky touch-ups are the only
  176. time you grab and move individual points. A sculptor does not glue
  177. sand grains together!
  178.  
  179. -------------------------------------------------------------------------
  180.                II. Looking at Stuff in the Detail Editor
  181. -------------------------------------------------------------------------
  182.  
  183. The Detail Editor is the program that lets you manipulate and modify
  184. objects in Imagine. Like the other editors (and any Amiga program, for
  185. that matter) Imagine gets input and directions from you by either
  186. moving the mouse and clicking it's buttons, or by typing on the
  187. keyboard. Most advanced options use pull-down menus to select the
  188. function you want to perform. An important trick, especially when you
  189. start using Imagine a lot, is keyboard-equivalents. This lets you
  190. select menu items via the keyboard, by pressing the right Amiga key
  191. along with another letter or number. All of the keyboard equivalents
  192. can be selected via pull-down menus, although not all menu items have
  193. keyboard equivalents.  You'll find that learning the most used
  194. commands' keyboard equivalents can save a LOT of time. Its quick and
  195. easy to punch right-Amiga-o to zoom your view out; pulling the menu
  196. down repeatedly is a pain. A few other commands (especially moving,
  197. rotating, and scaling objects) use the keyboard to indicate what you
  198. want to do (move, rotate, or scale) while simultaneously using the
  199. mouse to control the extent of the transformation.
  200.  
  201. You can get into it from any point in Imagine by selecting the menu
  202. item 'Detail Editor' from the Project pull-down menu.  The screen
  203. should then split into four smaller windows with a thin status line at
  204. the bottom of the screen and another at the top.
  205.  
  206. When you start up the Detail Editor, you'll see what is known as a
  207. "Quad-View." Are four windows labeled "top", "front", "right", and
  208. "perspective", which are different ways of viewing the object you are
  209. manipulating. It is difficult to manipulate 3D objects with a 2D mouse
  210. and a 2D screen, and the tri-view is a compromise that makes the best
  211. of these unfortunate 2D restrictions.
  212.  
  213. The top, right, and front views show you the wire-frame skeleton of
  214. the object you're editing. A wire-frame is a view of your object with
  215. each edge shown as a line segment. Faces are NOT shown, so the object
  216. looks like it's built from pieces of wire that join at the outside
  217. edges of the object, hence the name wireframe. Wireframes have two
  218. advantages; they are much faster to draw than "solid" models, and
  219. since you can see _into_ the object, you can manipulate points and
  220. edges on the interior of the object that you wouldn't normally see.
  221.  
  222. The top, right and front views are just that- a wireframe view of your
  223. object shown from the three orthogonal (right angle) directions. There
  224. is also a small axis at the bottom left corner of each view that shows
  225. the world's X,Y,Z coordinate system. In Imagine, the X,Y,Z is defined
  226. just like it is in mathematics- X is left to right, Y is in to out,
  227. and Z is down to up.  Some 3D programs define Z to be in-and-out, so
  228. note Imagine's difference. 
  229.  
  230. There is an absolute "world" coordinate system defined by these axes.
  231. You can select "Coordinates" from the Display menu, which will
  232. continually display the coordinates of the mouse pointer in the
  233. world's X, Y, and Z system. The units that it measures in are
  234. arbitrary, but it is often convenient to call them "Imagine Units."
  235. Objects tend to be on the order of 10 to 100 Imagine Units in size,
  236. since this is a comfortable scale to deal with when we design
  237. scenes to be rendered.
  238.  
  239. There is a grid shown in the three main windows. This grid is used to
  240. give you a sense of scale, and can be turned on or off in the Display
  241. menu.  The spacing between the lines can be set by choosing "Grid
  242. Size", also from the Display window. The default is 20, which is a
  243. reasonable starting size. Some commands let you use the grid to snap
  244. objects to precise locations- these are the most common reasons you
  245. want to change the grid size.
  246.  
  247. The fourth window (with no grid in it) is called the "perspective"
  248. window, which allows you to view your object from any direction. You
  249. can also change modes to view your object as a wireframe or as a
  250. "solid" model, where the faces become opaque so that you cannot see
  251. through your object. In this window, you CANNOT manipulate your
  252. objects- it is a view only.
  253.  
  254. Each of the four windows can be quickly zoomed to take up the full
  255. screen very easily by merely clicking on the tall narrow box to the
  256. left of each view that contains the name of the window. The window
  257. will expand to take up the entire screen, allowing you to have a
  258. better view of whatever you're working on. To zoom back to the
  259. quad-view, just click on the name to the left again. To go immediately
  260. from a full screen display of one view to a full screen display of
  261. another, you just click the name of the new view to the right. Being
  262. able to see all four views at once is often an advantage, but so is
  263. seeing a larger, more detailed view. This method allows you to quickly
  264. and easily change how you look at your model.
  265.  
  266. Just to get a sense of how this works, pull down the menu item
  267. 'Functions' and select 'Add primitive'. Click on the 'Torus' button
  268. and click on 'OK' to accept the default parameters. All this did was
  269. make a pre-defined object that we can look at when we manipulate the
  270. views. 
  271.  
  272. You should see an object in all four of the windows. This is the same
  273. object, just viewed from different directions. Remember the three main
  274. views (Top, Front, and Right) all show a WIREFRAME view from their
  275. respective directions, so the inside of the doughnut might look very
  276. complex.
  277.  
  278. Perspective, the remaining view, also shows a wireframe view of the
  279. doughnut. You can change the view by manipulating the two white
  280. sliding boxes on the top and left of the window. The bottom white
  281. slider lets you view from different directions AROUND the object. If
  282. the slider is in the middle, you're looking at the front. If it's 3/4
  283. of the way to the right, you're looking at the right hand side, and if
  284. it's all the way in either direction, you're looking at the back. The
  285. vertical slider on the right controls the ANGLE you're looking at the
  286. object from. Centered is a level perspective, all the way up gives you
  287. a straight-down view, and all the way down gives you a straight-up
  288. view.  By combining these two sliders you can look at your object from
  289. any direction.
  290.  
  291. You can change the perspective view by selecting 'wireframe' or
  292. 'solid' from the Display pull-down menu. Solid takes longer to show
  293. your object, but removes the points that are hidden, getting rid of
  294. the X-ray wireframe view. A final way of changing the perspective view
  295. is by selecting 'shaded' from the Mode pull-down menu and zooming the
  296. perspective view to the full screen. This shades the object in false
  297. black and white colors which sometimes lets you see the shape of the
  298. object more clearly.
  299.  
  300. There are a few commands that let you change your absolute vantage of
  301. your object.  You can zoom your view (on all windows) in and out by
  302. using 'zoom in' and 'zoom out' from the View menu. This lets you see
  303. more of your object at once, or just a certain portion. Each zoom in
  304. or out will double or halve the scale respectively. You can also
  305. select a numerical zoom by selecting 'set zoom' in the View menu,
  306. which allows more precise magnification levels by simply typing in a
  307. number. Zoom in and zoom out are often used, so knowing the keyboard
  308. equivalents of right-Amiga-i and right-Amiga-o can save a lot of time.
  309.  
  310. To scroll the views around, you can click in one of the three main
  311. views, then use the arrow keys to move the view in whatever direction
  312. you like. You'll notice that if you change one view, the others will
  313. change as well- all of the views are linked so they show the same
  314. volume of space. You can also scroll the view by telling Imagine where
  315. you want the view centered. You select 'Re-center' from the View menu
  316. and click on where you want the new center of your view to be. Usually
  317. you click right in the middle of the object or area you're interested
  318. in. The keyboard equivalent of right-Amiga-. (period) is very
  319. convenient.
  320.  
  321. The display that Imagine shows you is very important, as it is your
  322. interface in dealing with everything in the program. One important
  323. option is found in the Display menu; it is called "interlace".
  324. Interlace will change the screen resolution which the display uses. An
  325. interlaced screen is 400 pixels high, whereas a non-interlaced screen
  326. is only 200.  Unfortunately, the interlaced display will flicker on
  327. many Amigas. An Amiga 3000 or a "flicker-fixer" equipped Amiga will be
  328. able to use interlaced mode without the flicker. The interlaced mode
  329. allows much more detail and more precise location of points, so it is
  330. by far the preferred mode to work in. Even if you do have a flickering
  331. display, it is probably worth the annoyance to have the extra
  332. resolution.
  333.  
  334. A couple ways to reduce the flicker if you have it: you can muck with
  335. the monitor's contrast and brightness, or you can change the screen
  336. colors using the imagine.config file (see my Project tutorial). My
  337. favorite solution is wearing sunglasses- it works very well indeed,
  338. and you look cool while using your computer.
  339.  
  340. -------------------------------------------------------------------------
  341.                III. Moving Stuff in the Detail Editor
  342. -------------------------------------------------------------------------
  343.  
  344. Knowing how to move your views around is important, as when you're 
  345. manipulating an object you'll find yourself changing your viewpoints
  346. around constantly. There is a whole new set of commands for moving
  347. the OBJECTS in the editor around. 
  348.  
  349. In order to manipulate an object, we either have to load an existing
  350. one or start one from scratch. Imagine comes with several simple
  351. pre-built objects called 'primitives' that are very convenient to use
  352. as starting points for creating your own objects. Talking about these
  353. primitives doesn't really belong at this point in the tutorial, but 
  354. it would be nice to be able to have something to look at and manipulate
  355. as each of the viewing and manipulation commands are presented.
  356.  
  357. To make a primitive object, select 'add' in the Edit menu, and
  358. 'primitive' in the sub-menu. There are six simple shapes that Imagine
  359. will automagically create for you. They are a sphere, a cylinder, a
  360. cone, a disk, a plane, and a torus. When you select one, Imagine will
  361. ask how many points the object should have.
  362.  
  363. With primitives like a sphere, the more points that define it, the
  364. smoother its appearance is going to be when rendered. Remember that
  365. even curved surfaces are made from triangles, and the surface becomes
  366. better defined with each point added. However, an object with more
  367. points than are necessary can become a burden; drawing the object in
  368. the editor takes more time, and although the final rendered picture
  369. with be higher quality with extra points, it will also take longer.
  370. Thus, when you add new primitive objects, Imagine asks what level of
  371. detail you would like.
  372.  
  373. For example, the sphere primitive asks how many circle sections and
  374. how many vertical sections will make it up. The default is a
  375. reasonable number of defining points. If you were looking for a higher
  376. quality sphere because you were going to zoom in very closely to it,
  377. you might use extra points. If the object is going to sit in the
  378. background and not be examined closely, you might select fewer points.
  379. Most of the time, the defaults serve as a nice compromise, but you are
  380. much more likely to simplify the object as opposed to increase the
  381. default level of detail. The plane primitive in particular lends
  382. itself to simplification- most of the time you can bear with defining
  383. the simplest plane possible (2 triangles) as opposed to the
  384. overburdened default of a grid of 200 triangles.
  385.  
  386. Each primitive lets you define the numbers of points that define it;
  387. the parameters that you can vary are all pretty self-explanatory.  For
  388. example, the cylinder lets you define how many points are to form the
  389. circle around the rim, and also how many sections the body of the tube
  390. should be defined as.  Other options (available for some primitives)
  391. are simple flags that define whether to close the ends of the cylinder
  392. (to create a hollow tube versus a log) or to 'stagger points' in some
  393. models. Staggering points increases the smoothness of curves- you
  394. should almost always leave it on.  Note that the disk and the plane
  395. are actually flat objects- the others all have depth. All objects also
  396. let you define their size; this is quite straightforward.
  397.  
  398. When you have loaded an object or added a primitive, you'll notice
  399. that you can see each point and edge in the wireframe. In addition,
  400. you'll see an AXIS, usually near the center of the object. In Imagine,
  401. EVERY OBJECT HAS IT'S OWN INDEPENDENT AXIS. An object's axis helps
  402. Imagine determine which way an object is facing, how it is scaled, and
  403. even what it's position is. Imagine doesn't understand what the
  404. objects ARE; it doesn't realize that a complex object like an airplane
  405. should orient itself with wheels down instead of balanced sideways on
  406. a wingtip.  The axis actually defines the object's position; if you
  407. ask Imagine to move an object, Imagine really just moves the axis, and
  408. the object's points, edges, and faces are dragged along with it. When
  409. you rotate an object, the rotation occurs around the object's axis, as
  410. opposed to the world's absolute reference system. Scalings, where you
  411. change the size of the object, also use the object axis as a basis.
  412.  
  413. When you want to manipulate a certain object, you have to tell Imagine
  414. which one (or ones!) that you're interested in, since you might have a
  415. dozen different object loaded at once. The way of choosing an object
  416. so you can manipulate it is just by clicking on it's axis. The object
  417. will turn a pretty blue color (or sometimes purple- more later!) which
  418. indicates that the object is chosen- any manipulation commands will
  419. be done on this one object. The object is said to be "picked", and
  420. Imagine knows that you want to apply commands to this object as
  421. opposed to another.
  422.  
  423. Once you've picked an object, the most common manipulations are to
  424. move it around, rotate it, or scale it. These basic commands are often
  425. used, so Impulse has made it pretty easy to do. When you have a
  426. selected an object, you type the letter 'm' for move. The object will
  427. disappear (!)  and be replaced by a big yellow "bounding box" which
  428. encloses the volume where your object was. This bounding box
  429. represents the size, shape, position, and orientation of your object.
  430. Since the box is so simple to draw, Imagine can update it in realtime
  431. as you manipulate it, allowing you to position it quickly and easily.
  432.  
  433. After selecting the object and pressing "m", Imagine knows you want to
  434. move the object. Putting the cursor in any of the three main views,
  435. pressing the left mouse button and then dragging the mouse will drag
  436. your object in the direction you move. You do not have to click on the
  437. yellow box; anywhere in the view is fine. You can keep moving the
  438. object as long as you like; you can let go of the mouse button, move
  439. the pointer to another position in any of the three views, and
  440. continue moving the object. You are also welcome to zoom in and out,
  441. make one view full-screen, or re-center your views at any time. When
  442. you are finally done moving your object, pressing the space bar will
  443. accept the change and your object will be displayed as a wireframe in
  444. it's new location.  If you've made a mistake, you can press the ESC
  445. key instead of the space bar. This also exits the move mode, but the
  446. object's position is unchanged from where it was before you started to
  447. move it. This is obviously useful for fixing mistakes or changing your
  448. mind.
  449.  
  450. Two other commands work much like move: rotate and scale. If you
  451. select your object and press "r", you will rotate your object, and
  452. you'll see the yellow bounding box spin as you drag the mouse with the
  453. button down.  You can also change spin axes (to pitch or bank the
  454. object, as opposed to yawing it) by pressing "x", "y", or "z" to
  455. define which axis you want to rotate around. All rotation is done
  456. around the OBJECT'S axis.
  457.  
  458. Scaling is done by selecting "s" and dragging the mouse. Again,
  459. scaling is done relative to the OBJECT's axis. If the axis is in the
  460. center of the object, the object will grow in all directions. If it is
  461. at the bottom, the object will grow up and out, but not down.
  462.  
  463. Each of these three commands (move, scale, and rotate) can be called
  464. either when you've picked an object or during any other move, scale,
  465. or rotate command. For example, you might pick an object, press "m"
  466. to move the object, position it in a new place, press "r" to spin it,
  467. then "s" to scale it. You do not have to press the space bar after
  468. every change; only after you are finally satisfied with the new
  469. location, size, and orientation of your object do you want to press
  470. the space bar to accept the changes you've made.  Aborting by using
  471. the ESC key will remove all of the changes (movements, rotations, and
  472. scalings) that you've made.
  473.  
  474. These manipulation commands are easy to use, and they have other
  475. controls that make certain manipulations even easier. At the bottom of
  476. the screen, there is a status bar that will highlight which mode
  477. you're in. If you are moving, the "M" in the "M=Move" at the bottom
  478. of the screen will be highlighted, and the "R" and "S" highlight when
  479. you're rotating or scaling.
  480.  
  481. The "x", "y", and "z" commands that allow you to change rotation axes
  482. also work in moving and scaling. They act in these two modes as
  483. toggles- when you start a move, you are free to move it in all three
  484. directions, X, Y, and Z. You might want to restrict a direction of
  485. motion, though, if for example you are moving a table along a floor
  486. and you didn't want to accidentally lift the table into the air as you
  487. moved it left and right. Pressing the "x", "y", and "z" keys will
  488. toggle the allowable directions on and off, so pressing "z" will
  489. anchor the table's height, and pressing "z" again will allow you to
  490. lift it up if you change your mind. This also works in the scaling
  491. mode; if you want to make an object narrower without changing its
  492. height, you might toggle "z" and scale the object down. With the "z"
  493. toggle off, the object will maintain it's Z height, but will shrink in
  494. the X and Y directions.  At any time, the display at the bottom of the
  495. screen shows the letters "X-Y-Z" and highlights the directions that
  496. are "active" or changeable.
  497.  
  498. A related shortcut is using the capital letters "X", "Y", and "Z",
  499. which set the toggles to allow movement and scaling in one direction
  500. only.  If you wanted to lift a table straight up, you just type "Z"
  501. and the table will be free to move up and down, but not in the X or Y
  502. directions.  This method of setting the toggles overrides whatever
  503. position they were set in before, but you can use the individual
  504. toggles afterwards to set whatever freedoms you like.
  505.  
  506. Imagine gives you even more flexibility if you want to use it.
  507. Whenever you move, rotate, and scale an object, it is based on a
  508. certain coordinate system. The default is to use the standard
  509. coordinate system- the set of axes that is fixed in place and shown at
  510. the bottom left of the three main views. This is called the "world"
  511. coordinate system.  However, each object has it's own "local"
  512. coordinate system, defined by it's own axis. Imagine allows you to use
  513. a local coordinate system instead of the world system if you like.
  514.  
  515. For example, if you have an object in the shape of a plane, the local
  516. coordinate system probably has the Y axis (going front to back) in
  517. line with the main fuselage of the plane. Using "r" to rotate the
  518. plane, you can easily position it so that it is angled up like it is
  519. climbing into the sky. If you then wanted to move it in a straight
  520. line along it's "flight path", the direction it's pointing, you could
  521. select move, and try to judge by eye the new position in the direction
  522. in front of the plane. If, instead, you select local mode (by using
  523. "l") and restrict motion along the Y direction by typing "Y", the
  524. plane will move smoothly along the line it's pointed along. In the
  525. world coordinate system, it's moving in both the Y and Z directions,
  526. but in it's local coordinate system, it's moving only in it's Y
  527. direction.
  528.  
  529. To switch between coordinate systems, you just type "l" and "w"
  530. whenever you want to change. The current coordinate system has L or W
  531. highlighted at the bottom display just like the X-Y-Z indicators.
  532. Many times the local and world coordinate systems will be the same, so
  533. one is equivalent to the other.
  534.  
  535. One final option when you're manipulating objects allows you to
  536. manipulate the axis of the object independently. If you want to move,
  537. scale, or rotate an object's axis [without simultaneously affecting
  538. the object!] you can use "M", "R", and "S", the capital letter
  539. versions of the object manipulation commands, to affect only the axis.
  540. There are some occasions you might want to do this for fancy tricks,
  541. but most of the time, you just want to move the axis around just so
  542. that it lies near the center of your object.
  543.  
  544. The standard commands to move, rotate, and scale objects have been
  545. streamlined for ease of use since they are performed so often.
  546. Sometimes, however, they are somewhat lacking, especially when you
  547. need precise control over how your object is to be manipulated. For
  548. the precise control of object manipulation, Imagine has a special
  549. command called "Transform" which allows you to numerically control
  550. your object as opposed to judging by eye.
  551.  
  552. The transform command works much like the standard interactive
  553. commands in that you first select your object (by clicking on it's
  554. axis) and then telling Imagine what to do to it. To enter the
  555. transform command, you click on the object (it becomes blue or purple)
  556. and pull down the menu item "transform" from the Object menu. A small
  557. requester will appear. You have six options you can choose from:
  558. translate, rotate, scale, position, alignment, and size. You also
  559. enter X, Y, and Z arguments.
  560.  
  561. Translate takes the X, Y and Z arguments and moves (translates) the
  562. object that distance.
  563.  
  564. Rotate will rotate the object around the axis you specify by an amount
  565. (in degrees) you specify in X, Y and Z. Performing more than one
  566. rotation at once is legal, but it is easy to make mistakes in final
  567. orientation. If you rotate around more than one axis at once, the Z
  568. rotation is performed, then the X rotation, then the Y rotation.
  569.  
  570. Scale will scale your object by a certain factor. To double the size,
  571. just enter 2 in each of the X, Y, and Z boxes. A negative number is
  572. completely legal, and if one or three of the scalings is negative,
  573. you'll actually get a scaled mirror image of your original object.
  574.  
  575. Position is like Translate in that it moves your object. Instead of
  576. moving a certain distance, however, it moves to absolute world
  577. coordinates.
  578.  
  579. Alignment is also absolute; it will rotate your object in whatever way
  580. necessary to align in the direction you specify, regardless of the
  581. original orientation. Setting X, Y, Z all to zero will make the object
  582. line up exactly with the world axes.
  583.  
  584. Size is again absolute. It uses the axis size as a benchmark, and will
  585. scale the object (and it's axis) to an absolute size. The "default"
  586. size that all axes start out at is 32 Imagine Units, so entering an
  587. XYZ size of 32 32 32 will bring most objects back to their virgin
  588. sizes.
  589.  
  590. To use any of these sub-commands, just click on the box next to it's
  591. name and type in the appropriate X, Y, and Z arguments in the boxes to
  592. the right. Selecting "OK" will perform the manipulations, "cancel"
  593. will abort without affecting your object.
  594.  
  595. You have the option to use world or local coordinates, just as in the
  596. interactive commands; just click on either box to decide. The default
  597. is the world system. You can also manipulate only the axis (like the
  598. capital letter commands in interactive manipulation) by selecting
  599. "transform axis only."
  600.  
  601. Most manipulations use the interactive controls, and the
  602. transformation requester is used only for accurate, measured changes.
  603.  
  604. One problem that you may run into after an interactive or a
  605. transformed manipulation is a "dirty" screen. Imagine erases the old
  606. object from before your move or scale or rotate, and draws it in the
  607. new position. However, to save time, it will not redraw any other
  608. wireframe object that was in view. This means that the areas were the
  609. old object intersected any other object in the view will be blank;
  610. part of the other object will be erased. If you want to check to see
  611. if this is the case, you can select "Redraw" from the Display menu,
  612. which will redraw all of the objects, eliminating the problem.  One
  613. case where this is almost necessary is when you have multiple copies
  614. of an object at the same place. If you move one copy, the other isn't
  615. redrawn. Since it was in the exact same location as the old, erased,
  616. object, it looks like it has disappeared!  This is easy to fix with
  617. redraw. It is another oft-used command, so knowing the keyboard
  618. equivalent of right-Amiga-r is handy.
  619.  
  620. A problem you'll run into when manipulating complex objects is the 
  621. sheer time it takes to redraw the wireframe model (in three views).
  622. Imagine has a way to speed the display of these objects- it shows
  623. the bounding box of the object (like the one shown in interactive
  624. manipulation) instead of the wireframe. You LOOSE the detailed view
  625. of your object, but you can still see the position, size, and
  626. orientation. To make an object "quickdraw" in this mode, you can
  627. use three commands in the Functions menu. "Quickdraw all" will make
  628. all of the objects display in quickdraw mode. "Quickdraw none" will
  629. make all objects display the normal wireframe. "Quickdraw pick" will
  630. make your picked (blue or purple highlighted) object display in
  631. quickdraw mode. These quickdraw boxes are very handy, and since
  632. they can be toggled at any time in the Detail Editor, it makes sense
  633. to use them when screen updates start to get too slow.
  634.  
  635.  
  636. -------------------------------------------------------------------------
  637.                IV. Harvesting and Sorting with Pick
  638. -------------------------------------------------------------------------
  639.  
  640. Since you can have many objects loaded at once, there has to be a way
  641. for you to tell Imagine what object or objects you want to deal with.
  642. You've done this already, by clicking on an object's axis, and
  643. watching it turn color. This shows that the picked object is ready to
  644. be manipulated on.
  645.  
  646. What if we want to manipulate more than one object at a time? A
  647. standard way to "multi-pick" things (like icons in AmigaDos, or
  648. objects in Imagine) is to use the shift key. By holding the shift key
  649. as you click on objects, Imagine knows you want ALL of them picked,
  650. not just the latest one. In fact, if you press the shift key, the
  651. display line at the top of the screen will change to show how many
  652. objects are picked. Commands will affect all of the picked objects,
  653. not just one. In the case of moving, scaling, and rotating more than
  654. one object, the FIRST picked object's axis defines the basis of all
  655. the manipulations, as well as the local coordinate system for
  656. manipulating all of the objects.
  657.  
  658. There are easier way to pick many objects than by repeatedly clicking
  659. on each object's axis. Imagine allows you to change how objects are
  660. picked by the "Pick Method" submenu in the Modes menu. The default is
  661. "click", which means that when you click directly on an object's axis,
  662. it will become picked.  Other methods of picking can be chosen from
  663. the pick method submenu. If you use "drag box", instead of clicking on
  664. the object axes, you should press and hold the mouse button while
  665. dragging the mouse. A large box will follow your mouse, and when you
  666. release the button, an object within the box will become picked. If
  667. you press and hold the shift key when you release the mouse button,
  668. ALL of the objects within the box will become picked.
  669.  
  670. Lasso is similar, but more versatile. You press and hold the button
  671. while drawing a large circle or oval or squiggly shape. When you
  672. release the button, an object within the region you've drawn will
  673. become picked.  Again, you can hold the shift key to pick ALL of the
  674. objects within.
  675.  
  676. A final option in the pick method submenu is called "Lock". Lock isn't
  677. a method of picking; it really has more to do with when moving picked
  678. objects. Lock is a flag; you can toggle it on and off by selecting it
  679. from its submenu. When Lock is on, any moved object will snap to the
  680. nearest grid location when released. This is automatic and is easier
  681. than using the one-time "Snap to Grid" (described later, I promise!)
  682. again and again when you're trying to get precise placement.
  683.  
  684. Two other utility commands can be found in the Pick/Select menu.
  685. "Pick all" will pick ALL of the objects in your workspace. "Unpick
  686. Last" will allow you to remove the last object you picked from your
  687. set of picked objects. This is handy when you pick one too many
  688. objects and you want to unpick the last one you chose.
  689.  
  690. It is easy to pick objects or sets of objects using the different pick
  691. methods. There is actually another powerful way to change what object
  692. or objects are picked; it is called "select."  There is a very, very
  693. important difference between a "picked" object and a "selected"
  694. object; you've been using pick to highlight objects and manipulate
  695. them. Select is sort of a pick-wanna-be.
  696.  
  697. One problem that can occur is when two object axes are directly on top
  698. of each other. If you click on the common axis location, one of the
  699. objects will become picked. (The first one that was created or loaded
  700. into the Editor). If you click again, the same object will remain
  701. picked and the second object will just sit there.  If you hold the
  702. shift key and click on the common axis again, the second object WILL
  703. be picked, but now BOTH objects are picked. If you want to pick just
  704. the second object and not the first, you can either MOVE one object
  705. just to uncover the other axis, or you can use select.
  706.  
  707. There is a solution when picking (or unpicking) objects becomes
  708. awkward (or impossible!). SELECT allows you to control what objects
  709. are picked by allowing you to add and remove objects from your set of
  710. picked objects one at a time.
  711.  
  712. Think of buying lunch at a cafeteria, and you pick which food you want
  713. to eat. One way of "picking" food to add to your tray is by having the
  714. lunch worker point to each of the cafeteria's food bins, and saying
  715. "No, the next one, the next one, the next one- yes! That one!"  as the
  716. worker points to the foods in turn.  As the worker selects item after
  717. item, you can choose to PICK the item he's pointing to at any time.
  718. The analogy extends; What if your arms are full of cafeteria food and
  719. you want to put some back? Your arms are busy holding all the food;
  720. you can't easily grab an item and put it down.  You can, however, ask
  721. a friend to "unpick" the item for you.  If your friend has trouble
  722. with big words (like the names of food), he can just point at each
  723. food in your arms in turn until he points to the granola yogurt you
  724. want to put down. You then say "Yes, yes! Get rid of that!"
  725.  
  726. This is exactly what select allows you to do. Your arms are full with
  727. picked objects. You can't just click on an object to "unpick" it
  728. because Imagine thinks you're just making sure you have it picked. You
  729. also might have problems indicating the right object to pick, as in
  730. the case of two objects on top of one another. The major difference
  731. between the the cafeteria and Imagine is that your mentally challenged
  732. friend is also the cafeteria worker, and will point to both types of
  733. objects for you.
  734.  
  735. Select works by allowing you to highlight different objects in a
  736. controlled way. A "selected" object might be picked or not; A normal
  737. object is white, a selected object is orange, a picked object is blue,
  738. and a picked AND selected object is purple.
  739.  
  740. Only one object is ever be selected at once, which is helpful in
  741. reducing confusion. The commands for selecting objects are completely
  742. different from those of PICKing objects; the whole point of select is
  743. that sometimes the methods used to pick objects are awkward, and
  744. select gives you an alternative way to pick them.
  745.  
  746. The easiest and most common method of selecting an object is by using
  747. two commands, "Select next" and "Select previous", both found in the
  748. Pick/Select menu. Using "Select next" repeatedly will cycle through
  749. all of the objects in the order that they were created or loaded.
  750. This command does NOT care whether the object is picked or not; it
  751. will select all objects one at a time. "Select next" is often a
  752. command you want to repeat, so knowing the keyboard shortcut of
  753. right-amiga-n is almost necessary.  By repeatedly using select next,
  754. ANY object can be selected because Select next will eventually reach
  755. it. "Select previous", right-amiga-p, will select objects in the
  756. opposite order, in case you overshoot with select next.  One
  757. convenience is that when an object becomes selected, your view will
  758. jump to center the object on the screen, always allowing you to see
  759. what you just selected.
  760.  
  761. When an object is selected, there are certain commands that will cause
  762. it to become picked or un-picked. The most common command is called
  763. "pick select", which can be found in the Pick/Select menu. When you
  764. use this menu option, the selected object will become picked. If the
  765. selected object is picked and you want to un-pick it, you can use
  766. "unpick select" from the pick/select menu to unpick it.
  767.  
  768. "Select next" is kinda klunky, especially if you know exactly what
  769. object you want to select. One quick command that is sometimes useful
  770. is "Home", which selects the very first object you created or loaded
  771. into the Editor.
  772.  
  773. Two other useful commands to quickly select specific objects are "Find
  774. by Name" and "Find requester", both found in the Functions menu. "Find
  775. by Name" allows you to type in an object's name (assigned in the
  776. Attributes requester, more later) and your view will shift to center
  777. on the object you named. In addition, the object becomes selected,
  778. allowing you to pick-select or unpick-select it. The "Find by
  779. Requester" does the same thing except it displays the names of all of
  780. the currently loaded objects, and you just click on the name you want
  781. to select. This requester is also useful because it tells you the size
  782. (# of points, edges, and faces) of each object, which is an excellent
  783. judge of object complexity. It's also fun to say "Cool! My tomato has
  784. 1,821 points!"
  785.  
  786. -------------------------------------------------------------------------
  787.                    V. Hierarchies and Complex objects
  788. -------------------------------------------------------------------------
  789.  
  790. With complex models, sometimes you don't want to make one huge, mungo
  791. object to represent the entire model. You might want to make a forest
  792. object that has 20 trees in it, and it seems silly to carve the whole
  793. thing out of one block. Or, you might be building an object that is
  794. logically a bunch of separate parts, like a clock with a face, a
  795. pendulum, two hands, and a frame.
  796.  
  797. Another important ability you might want is to be able to give
  798. different parts of a complex object different attributes, or colors.
  799. Imagine lets you color and define the look of your objects in
  800. different ways, and you can even tell it to make different parts of
  801. the same object look different. But when you're building something
  802. like a window, the glass panes are considerably different than the
  803. wood frames; it is easier to define each as a separate object then
  804. somehow group them together.
  805.  
  806. There is a function that lets you do exactly this- group objects
  807. together.  When you have a model that you want to make (and keep!) in
  808. separate sections, Imagine allows you to establish a group of objects
  809. which will stay together. It allows you to treat the group as an
  810. entire ensemble (if you want to move everything, or apply a command to
  811. the whole set), or you can pick out one particular object and deal
  812. with it independently.
  813.  
  814. Grouping is very easy to do. If you want to group two objects
  815. together, you click on one object, then press the shift key and click
  816. on the other.  Remember that this is just the method of picking more
  817. than one object at once. When you have multi-picked the objects, you
  818. select "group" from the Object menu. A purple line will appear joining
  819. the axes of the objects.  The first object that was selected becomes
  820. the "parent" of the group.  If you group more than two objects, the
  821. purple "group" lines all run from each "child" object to the parent
  822. object. This lets you see which axis to click on to pick the entire
  823. group. Sometimes it is nice to assign a lone axis as the parent of a
  824. group, especially when no part of a group really doesn't lend itself
  825. to being a parent.
  826.  
  827. Splitting a group back into it's component parts is also easy; just
  828. pick the group by clicking on the parent. The entire group will become
  829. picked, and selecting "Ungroup" from the Object menu will split the
  830. group. The purple joining lines will disappear, and each child will
  831. be independent again.
  832.  
  833. Once a group is made, it can be treated almost identically to an
  834. ungrouped object. You can pick it (by clicking on the parent) and the
  835. entire group will become highlighted. You can then move, scale, or
  836. rotate the entire group as a whole. If you click on a CHILD object,
  837. the child will be picked, but not the group. You can then move, scale,
  838. or rotate it independently of the group, assign it individual
  839. attributes, or perform a command on it independently of the rest of
  840. the group. Even when you move the child object around, it will STAY
  841. grouped; you must use "ungroup" to ungroup objects. There are modes
  842. where you can pick parents separate from their children; this is
  843. described in the next section.
  844.  
  845. In addition, you can make groups of groups. Or groups of groups of
  846. groups. This is done exactly the same as before; you can pick one
  847. group, multi-pick a second, and group them. Having these multi-layer
  848. groups is sometimes very useful. One excellent example would be in
  849. modeling a human figure. You might make a finger group that contains
  850. all of the knuckles, a hand group including a palm, four finger
  851. groups, and a thumb group, an arm group consisting of a hand group, a
  852. wrist, a forearm, and an elbow, and a body group consisting of a head
  853. group, a torso, two leg groups, and two arm groups. This kind of
  854. nested grouping is called a "hierarchy", where the body is the
  855. great-granddaddy of a knuckle. One great advantage is obvious when you
  856. want to move an arm.  You pick the arm, and rotate it around the
  857. shoulder. All of the arm's children follow it, so the arm moves as a
  858. whole. You do NOT have to move 15 knuckles, a palm, a wrist, a
  859. forearm, and so on. If you want to adjust a finger, you can manipulate
  860. it and the knuckles will move together, but the arm will be
  861. unaffected. If you move the main parent body group, everything follows
  862. along as if the body were just one solid object, as opposed to dozens
  863. of parts. Hierarchies are obviously suited for complex models.
  864.  
  865. Groups are useful when you have sub-parts of an object you want to
  866. keep together. Sometimes grouping simple objects is still useful even
  867. if there is no hierarchy to follow, since the individual objects are
  868. free to move apart from the parent, and can easily be assigned different
  869. attributes.
  870.  
  871. For example, if you're designing a human face, you might cause the
  872. eyeballs in the head to be an additional grouped object as opposed to
  873. just molded into the main face. Later, if you wanted to change the eye
  874. (make it a different color, or replace it with a different type of eye
  875. (chrome eyeballs!  Cool!)) you can easily select the eye and change or
  876. replace it. This advantage compounds the other advantages of grouping;
  877. you can later animate the eyes looking in different directions, and
  878. you can easily change the attributes or texture of the eye while
  879. leaving the face undisturbed.
  880.  
  881. -------------------------------------------------------------------------
  882.        VII. Pick, Add, Drag.  Pick, Add, Drag. Geez, how boring!
  883. -------------------------------------------------------------------------
  884.  
  885. There are some useful commands that act on picked objects other than
  886. just moving, rotating, and scaling. Two of the most obvious are "Load"
  887. and "Save". Load will load a new object in from disk- it will give you
  888. a file requester which you can choose the filename from.  The most
  889. common place to put objects are in your "objects" subdirectory in your
  890. project directory.See the Project Editor tutorial for the complete
  891. Imagine file structure.
  892.  
  893. Am important suggestion; use descriptive names and extensions. I
  894. talked about this a lot in my Project tutorial, but it's worth
  895. repeating. "Obj1" is going to mean nothing to you an hour from now.
  896. "tablecloth.iob" tells you that this is an Imagine object of a
  897. tablecloth- a useful description. Some suggested file extensions:
  898.  
  899.  .iob    Imagine Object. Loads into the Detail Editor 
  900.  .iout   Imagine Object which is a faceless outline
  901.  .ifm    Imagine Form. Loads into the Form or Detail Editor
  902.  .iff    Amiga picture or brush  (standard)
  903.  .ham    Amiga picture or brush in Hold-And-Modify format
  904.  .iff24  24-bit Amiga picture of brush. Highest quality.
  905.  .spth   Imagine spline path
  906.  .lpth   Imagine line path
  907.  
  908. Save will take the picked object or group and save it onto disk.
  909. Note that GROUPS will save as one big group, as long as you have the
  910. whole group picked by clicking on the parent. You can give the saved
  911. object or group any name you want, and you'll probably want use an
  912. extension of ".iob". If you pick a child of a group and save it, 
  913. you save ONLY that object (and its children), and NOT the entire group
  914. it belongs to.
  915.  
  916. Another command you can apply to picked objects is "Snap to Grid" from
  917. the Functions menu. It operates on all picked objects, moving each of
  918. them so that their axis lies on top of the nearest grid intersection.
  919. This is very useful in trying to line up objects or for precise
  920. positioning. This is much like a one-time "Lock".
  921.  
  922. There are a few other utility object commands. "Cut", "Copy", and
  923. "Paste" are found in the Object menu. "Cut" will remove your object
  924. from the Imagine world and store it in memory. When you select
  925. "Paste", the object will be re-inserted into the world at the same
  926. place it was prior to the cut. In fact, the object is STILL retained
  927. in memory, so you can move the restored object around and use "Paste"
  928. again to get a second copy to manipulate.  You can repeat "Paste" as
  929. many times as you like to get copies of objects. "Copy" is like cut,
  930. except the object is not removed from the world after being copied to
  931. memory. You can use "Paste" to add multiple copies to the world.
  932.  
  933. Since the pasted objects are all put in the same location, often
  934. you'll have to move one copy to get to the next. Judicious use of
  935. "Redraw" can help in showing exactly what copies are still floating
  936. around.
  937.  
  938. An incredibly useful command for making complex objects is called
  939. "Join", which can be found in the Functions menu. If you pick two or
  940. more objects, join will assemble them into one single object. The
  941. new conglomerate object will have use the axis of the first object
  942. that was picked, and will contain all of the points, edges, and faces
  943. of all of the joined objects. Joined objects are difficult to 
  944. unjoin later, so only use it when you WANT a solid object. Join
  945. is used constantly- you might build a car with the body sides, and
  946. "join" on a side mirror, then join the  roof on, then join the floor. 
  947. Remember the advantages of groups though; you probably DON'T want
  948. to join the tires to the car; if you group them you can rotate them
  949. later, as well as define the chrome hubcap separately from the car's
  950. paint and the rubber tire.
  951.  
  952. "Merge" is also found in the Functions menu. It is more of a utility
  953. command. It will remove any duplicate faces, edges or points in your
  954. object. Especially after you JOIN objects, you might have a lot of
  955. points lying on top of one another. Merge removes these extra,
  956. unneeded points, speeding rendering and even display in the editors.
  957. Merge also helps Phong shading; more about Phong shading in the soon
  958. to come Attribute Tutorial. 
  959.  
  960. Delete is pretty obvious command. It can also be found in the Functions
  961. menu.  When you use delete, every picked object will be removed from the
  962. world. This command is used a lot to get rid of cruft and deadwood, so
  963. knowing the keyboard shortcut of right-amiga-d is useful.
  964.  
  965. As with all of the editors, Imagine has one level of "Undo", which can
  966. be selected from the Project menu. When using dangerous commands like
  967. Delete, being able to recover from the command is important. Undo will
  968. work with almost any command. You can also undo an undo, reinstating a
  969. command you decided you wanted anyway. 
  970.  
  971. -------------------------------------------------------------------------
  972.                    VIII. Spraypaint and Picture Frames
  973. -------------------------------------------------------------------------
  974.  
  975. The low-level commands to create and manipulate objects are sufficient
  976. to create any model you can think of.  An additional level of control
  977. you have is the ability to define the surface color and attributes of
  978. your object. A flat plane might be made of two triangles, but
  979. depending on how you set the attributes of the plane, it might render
  980. as a pane of glass, a reflective mirror, a wood tabletop, a piece of
  981. graph paper, or a picture of your grandmother. Defining the surface
  982. characteristics of objects gives them their character. Luckily,
  983. Imagine gives you excellent control of these attributes.
  984.  
  985. Every object has a set of attributes that can be modified. In a group,
  986. every object can have different attributes from the parent; when you
  987. select a group, you only modify the parent's attributes. To change any
  988. attributes, just pick an object and select "Attributes" from the Object
  989. menu. A requester will appear, and you can select different properties
  990. to change. In addition, you can place brush maps and textures on the
  991. object, as well as add or change the object's name.
  992.  
  993. Choosing and setting attributes is immensely important to make your
  994. objects look good. Setting textures and especially brushmaps give you
  995. near-infinite control on what your object's surface looks like.  I
  996. have written full tutorials on both the use of texture and brushmaps,
  997. and plan to write one on setting attributes.  The choices in the
  998. attributes requester are so important that they deserve a tutorial
  999. unto themselves. I haven't written the attribute tutorial as of today
  1000. (6/11/91), but look for it by the end of July.
  1001.  
  1002.  
  1003. -------------------------------------------------------------------------
  1004.                     IX. A Mode for Every Season
  1005. -------------------------------------------------------------------------
  1006.  
  1007. The basic commands to pick, move, and view the world and everything in
  1008. it are very important, as they are used constantly. The actual work
  1009. you perform in building objects depends on the user changing the view
  1010. and manipulating the objects almost without thought.
  1011.  
  1012. No matter how good we are at manipulating objects and changing the
  1013. view, using these commands will never BUILD an object for us. To do
  1014. this, Imagine has different MODES that it performs different actions
  1015. in. Some modes allow us to manipulate objects and groups, as we have
  1016. been doing already. Other modes let us pick and manipulate not
  1017. objects, but the POINTS of an object, or the edges, or the faces.
  1018. Still other modes let us drag points around in different ways. Some
  1019. let us add NEW points, edges, and faces.  (Aha! So that's how we can
  1020. build our own objects!)
  1021.  
  1022. These modes are easy to change; you can just pull down the Mode menu
  1023. and select which mode you would like to be in.  The current mode is
  1024. always displayed in the status line at the top of the screen; this is
  1025. often handy when you get confused about what you're doing. The
  1026. keyboard equivalents for changing the current mode all use right-Amiga
  1027. and a digit; this makes the keypad become a "mode selector" if you
  1028. don't want to use the pull-down menus and have stuff it takes to
  1029. remember which digit is which mode.  Personally, I don't have the
  1030. stuff, so I bear with the pulldown menu rather than strain my poor
  1031. brain.
  1032.  
  1033. The default mode is "Pick Groups", which means that whenever you click
  1034. on a group, it will be picked. (Simple!) If you want to pick
  1035. individual objects, EVEN IF THEY ARE THE PARENT OF A GROUP, there is
  1036. a mode called "Pick Objects."  Just select it from the mode menu, and
  1037. now when you click on any object (in a group or not, child or parent)
  1038. it will be selected. You cal obviously multi-select it using the shift
  1039. key. When you are dealing with ungrouped objects, "Pick groups" and
  1040. "Pick objects" work identically.
  1041.  
  1042. Different modes let you deal with the different parts of an object. Up
  1043. until this time, we've always dealt with entire objects at a time. We
  1044. could rotate, scale, and move them, add them, group them, and delete
  1045. them, though we could not affect their basic structure. The remaining
  1046. modes all work on PARTS of objects, not objects themselves. One
  1047. important note is that to even enter these other modes, you must have
  1048. selected at least one object (or group) for the new modes to act apon.
  1049.  
  1050. You'll also find that I consistently lied to you in most of the
  1051. previous sections. I always referred to picking objects as opposed to
  1052. picking anything else. ALL of the pick and select commands except Find
  1053. work equally well in picking faces, edges, or points as opposed to
  1054. just objects or groups. Most other commands like Delete will work on
  1055. the parts of an object as well.
  1056.  
  1057. One new mode is "Pick points." If you pick an object or group and
  1058. enter the pick points" mode, the object will turn white (the object is
  1059. NOT picked anymore!) and it's points will all become visible (they
  1060. will show up as small squares.) Now you are in a different mode; you
  1061. are no longer picking and selecting OBJECTS, you are dealing
  1062. exclusively with points. You can then click on the points which will
  1063. turn orange as you pick them. You can use the shift key to multi-pick,
  1064. or the lasso and drag box to grab many points at once. You can also
  1065. select points, and use all of the selection tools to help you get any
  1066. subset of points you want. Selected points are green, picked points are
  1067. orange, and picked and selected points are yellow.
  1068.  
  1069. When you're picking points, edges, or faces, Imagine will work ONLY
  1070. with the points, edges, or faces in the object that was picked before
  1071. you chose the "pick points (or edges or faces)" mode. This prevents
  1072. you from confusing one object's points with another's. When you scroll
  1073. around your view or redraw the screen, the other objects won't even be
  1074. updated, so don't get scared if they seem to disappear. When you
  1075. re-enter pick objects or pick groups mode, all of the objects will
  1076. re-appear.
  1077.  
  1078. Just because you can pick something doesn't mean you can perform every
  1079. command on them. In the case of points, you can delete your picked
  1080. points, or use the transformation requester to translate them;
  1081. interactive dragging is actually another mode of it's own, though.
  1082. When you delete a point, you delete any edges and faces that that
  1083. point help form. You cannot do things to selected points that make no
  1084. sense (like grouping them, or saving them to a file)- that's just
  1085. weird.
  1086.  
  1087. You can perform some other commands that aren't applicable to objects
  1088. as a whole, however. For example, a very useful command is called
  1089. "split." It takes the selected points,  removes them from the
  1090. original object, and gives them their own axis. In effect, the
  1091. original object is split into two parts defined by the points you
  1092. picked. Any connecting faces or edges are deleted (two objects do NOT
  1093. share!).  This might be very useful when you have a logo and want to
  1094. pull one letter out of the object to do something special with it.
  1095.  
  1096. One command that is unique to pick points mode is "taut", which is
  1097. found in the Functions menu. If you select three or more points and
  1098. select "taut", the middle points will jump to the line segment defined
  1099. by the first and last points. This command might be useful to line up
  1100. a bunch of points in a straight line quickly. Taut does NOT work with
  1101. anything other than picked points.
  1102.  
  1103. Picked points can be manipulated with the Transform command. The
  1104. picked points can be translated, scaled, rotated, and positioned
  1105. INDEPENDENTLY of the rest of the object. Rotations and scalings all
  1106. use the object's axis as a reference point. Absolute positioning will
  1107. move the FIRST point you pick to the location you choose, and the
  1108. rest of the picked points will be translated an equal amount. Interactive
  1109. dragging is accomplished using the "drag points" mode.
  1110.  
  1111. Picking edges is similar to picking points, except to specify an edge
  1112. you just click on the two points that make it up, or lasso or drag box
  1113. the entire edge. Just like points, you can't perform every command on
  1114. them. You can delete them and split them.
  1115.  
  1116. You CANNOT translate edges or use taut on them. Deleted edges will 
  1117. delete any face they belong to, but the points in the edges will NOT
  1118. be removed.
  1119.  
  1120. A new command you cannot perform on points but can use on faces is
  1121. called "fracture." This command is in the Functions pull down menu,
  1122. and is often very useful. The fracture command will take and break 
  1123. each edge into two edges, with an additional point added to the
  1124. midpoint of each selected edge. This command is very useful when you
  1125. need to increase the detail level at a certain area of an object; the
  1126. extra edges that appear allow you to manipulate them to add finer
  1127. details and structures.
  1128.  
  1129. Select Faces is again pretty straightforward. You must click on ALL
  1130. THREE of the points that make up the face to select it. Fracture works
  1131. very well on faces; it splits each face (one triangle) into four
  1132. triangles defined by the midpoints of the face. The new faces can then
  1133. be manipulated for higher object definition.
  1134.  
  1135. Deleting faces removes the faces, but not the edges or points that it was
  1136. made up of.
  1137.  
  1138. Picked faces allow you to characterize an object's appearance in local
  1139. areas. The attribute requester normally allows you to give the object
  1140. overall color, reflection, and transparency values. You can actually
  1141. set these for every single face, if you like. You can pick one or more
  1142. faces, select "attributes" from the Object menu, and use the sliders
  1143. to set the color, transparency, and filter values for the face or
  1144. faces.
  1145.  
  1146. You will NOT see any change in the appearance of your object when you
  1147. do this, but when you render, the faces you selected will all override
  1148. the default object color with the attributes you selected. A danger is
  1149. that face attributes are somewhat fragile. If you join or merge
  1150. objects or start deleting or adding points to it, all face coloring is
  1151. often lost. To keep this from happening, color individual faces LAST,
  1152. just before saving your object.
  1153.  
  1154. A final note about face coloring; don't depend on it for coloring your
  1155. objects in complex ways. Using grouped objects or brush maps is much
  1156. more robust and allows better control. Coloring individual faces is
  1157. useful mostly for quick and dirty attribute definition or for making
  1158. small details that aren't worth the bother of a brushmap or extra
  1159. object.
  1160.  
  1161. Both "pick edges" and "pick faces" will allow you to split off the
  1162. selected parts of the object to create two new objects by using
  1163. "split", just as split works with selected points.
  1164.  
  1165. Three additional modes are "add points", "add edges", and "add faces".
  1166. Add points will add an additional point to your object in the location
  1167. you click on. Add edges lets you click on TWO points and will add a
  1168. new edge joining them. Add faces mode will let you add a new face to
  1169. an object by clicking on the THREE points that make it up.
  1170.  
  1171. "Add lines" mode is a convenient combination of "add points" and "add
  1172. edges". As you click, a new point is added in the location you point
  1173. to, and further clicks will add additional points along with an edge
  1174. joining the latest point to the one that was immediately preceding it.
  1175. Thus, a few clicks around the border of a rough circle will make a set
  1176. of points with the edges following the outline of that circle.
  1177. Carefully clicking on the location of an existing point will cause the
  1178. new line to connect to to that point, so making closed shapes is
  1179. easier.
  1180.  
  1181. "Drag points" mode allows you to interactively drag individual points
  1182. in your object around. If you select this mode, you can click on any
  1183. point and drag it to a new location interactively. Any edges or faces
  1184. that this point is connected to will follow the point to its new
  1185. location.
  1186.  
  1187. Dragging multiple points is also easy- just use the shift key,
  1188. multi-pick the points by clicking on each in turn, and when you want
  1189. to start dragging them, just release the shift key.
  1190.  
  1191. AN IMPORTANT TECHNIQUE: What if you want to select a point or points
  1192. in one view, and drag them in an orthogonal direction? For example,
  1193. you have a plane defined by a horizontal 10 by 10 grid, and you want
  1194. to select a bunch of points from the middle and pull them up. If you
  1195. click on the points from the top view, you can easily select any of
  1196. the points you're interested in, but you can only drag them left and
  1197. right, forward and back. You want to be able to drag them UP.
  1198.  
  1199. Here's the method for doing this: it is invaluable, so remember it.
  1200. Whether you want to move one point or a hundred, press the shift key
  1201. to multi-pick the points.  Click on the points you want to move in ANY
  1202. view, keeping the shift key depressed. To move all of these points,
  1203. KEEP THE SHIFT KEY DEPRESSED and move the mouse to the view where you
  1204. want to move the points in. Press and hold the left button, then
  1205. RELEASE the shift key. The picked points will move with your mouse for
  1206. as long as you keep the button held down. Releasing the button will
  1207. anchor the points.
  1208.  
  1209. In the example with the 10 by 10 horizontal grid, you would press
  1210. shift, click on the points you want in the top view, move to the front
  1211. (or right) view, release the shift key, move the points up, and
  1212. release the mouse button.  That's it!
  1213.  
  1214. Magnetism, a more complex way of dragging points will be covered in
  1215. the "advanced" Detail tutorial.
  1216.  
  1217. One problem with manipulating points, edges, and faces is picking the
  1218. RIGHT point. When the object is complex, the wireframe displays can
  1219. get very cluttered. There is a convenient way of simplifying a view to
  1220. get points out of your view- it is a mode called "hide points". In
  1221. hide points mode, any points you select (with click, drag box, or
  1222. lasso) will disappear from view- they will go away. They still exist,
  1223. they just aren't displayed and can't be picked or manipulated. You can
  1224. "hide" whatever points that get in the way of your work area, then
  1225. change modes, and manipulate the non-hidden parts of your object.
  1226. Selecting "pick objects" or "pick groups" will make the hidden points
  1227. re-appear.
  1228.  
  1229. For example, if you're working on a helicopter model and you want to
  1230. work on the rotor alone, you might select "hide points" mode, and use
  1231. the lasso to indicate the main helicopter body. The rotor is left
  1232. alone, and after changing into drag points or select faces mode, it is
  1233. easy to indicate what portion of the rotor you want to deal with
  1234. without accidentally modifying the helicopter body. Selecting "pick
  1235. objects" mode makes the entire helicopter, with the rotor changes,
  1236. reappear.
  1237.  
  1238. In theory, you can create any object by adding an axis, then adding
  1239. points, edges and faces. In practice, these are very low level
  1240. commands; you generally use the more powerful commands like "mold" and
  1241. "slice" found in the Object editor. The low level select and add modes
  1242. are built to give you the low level control that you sometimes need;
  1243. however, they are more for defining basic outlines that are then used
  1244. in the more powerful Object commands, or for touching up small details
  1245. on nearly complete objects. The next Detail tutorial will talk about
  1246. these commands. 
  1247.  
  1248. -------------------------------------------------------------------------
  1249.                         X. More to come
  1250. -------------------------------------------------------------------------
  1251.  
  1252. This tutorial describes the important fundamentals of using the Detail
  1253. Editor. Remember that most object creation mostly uses the advanced
  1254. functions like "mold" and "slice". My next tutorial will deal with
  1255. these powerful tools; however, the basics that are described in this
  1256. tutorial are very useful and knowing how to move your view and
  1257. manipulate objects is virtually essential. I also plan to write a
  1258. general tutorial (with examples!)  describing object creation; knowing
  1259. all the menu commands doesn't give you a sense of the strategies to
  1260. follow or steps to take to create a specific model.
  1261.  
  1262. Another important discussion in the followup Detail Tutorial will
  1263. describe different classes of objects: lone axes, line paths,
  1264. outlines, flat objects, and "normal" objects.  Expect the second
  1265. tutorial around the middle to end of July, 1991.
  1266.  
  1267. Whew! Another tutorial whipped out! Actually, this one only covers 2/3
  1268. of an Editor, but including everything would really stretch the limits
  1269. of a coherent text file. (This one is only 71K!) I am very glad to
  1270. have gotten a lot of positive response from my last tutorial on the
  1271. Forms Editor; I hope this one (which covers a much more complex
  1272. Editor) is equally well received.
  1273.  
  1274. If you have any questions, you are welcome to write me or send
  1275. e-mail to the Internet Imagine Mailing list, imagine@athena.mit.edu.
  1276. Any suggestions or "I want to see this in a tutorial" questions
  1277. sent to me personally will be gladly accepted.
  1278.  
  1279. -Steve
  1280. -------------------------------------------------------------------
  1281. Steve Worley                                spworley@athena.mit.edu
  1282. -------------------------------------------------------------------
  1283. Steve Worley
  1284. 290 Massachusetts Ave.   (this address soon to change, but mail sent
  1285. Cambridge MA 02139        here will eventually make it to me anyway...)
  1286. ----------------------------------------------
  1287. This file and the text therein is Copyright 1991 by Steven P. Worley.
  1288. All rights reserved.  This file may be distributed freely in computer
  1289. or paper form as long as 1) It is unchanged and unedited 2) is
  1290. distributed in its entirely 3) gives proper credit to the author,
  1291. Steven Worley.
  1292. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  1293.  
  1294. APPENDIX B:  FORMS TUTORIAL (by Steve Worley)
  1295. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  1296.  
  1297. This is my long-promised tutorial on the Forms Editor. It is split
  1298. into two sections in order to keep mailers from choking. The first
  1299. part (which you are reading now) describes how the Forms Editor creates
  1300. its objects and what each menu option does. The second file contains
  1301. three step-by-step examples that show you how real objects are planned
  1302. and built in the Forms Editor.
  1303.  
  1304. There is a set of screen grabs and example pictures on hubcap.clemson.edu
  1305. in the pub/amiga/incoming/IMAGINE/MISC directory in a file called
  1306. Form_Tutorial.lzh. You might want to download this file to help with
  1307. the example forms I describe.
  1308.  
  1309. I've spent a LOT of time in writing over 40K in text to make this
  1310. tutorial and especially the example pictures. Any feedback is GREATLY
  1311. appreciated, as it will spur me on to doing a Detail Editor tutorial
  1312. sooner.
  1313.  
  1314.                        The Imagine Forms Editor
  1315.  
  1316. The creation of objects in Imagine is certainly not as intuitive as
  1317. the process you used in kindergarten to squeeze clay into vague animal
  1318. shapes. Instead of a real life view of the object, you get a 
  1319. complex quad-view display. Instead of using your grubby fingers, you
  1320. have a very 2-D mouse. Most importantly, if you wanted to change the
  1321. shape of a clay model, you just pushed and pulled on it. In Imagine
  1322. (and any other computer modeler) you have to use a very specific set
  1323. of tools to manipulate your objects. No matter how powerful these
  1324. tools are, they are still going to limit the ways you can manipulate
  1325. your creation.
  1326.  
  1327. This tutorial is a taste of the Forms editor. The editor is VERY
  1328. powerful, but not necessary easy to describe. It allows you to create
  1329. certain types of detailed object shapes quickly and easily, and is
  1330. certainly not limited to the asteroid-like example in the Imagine
  1331. manual.
  1332.  
  1333. ---------------------------------
  1334. Part I- What IS the Forms Editor?
  1335. ---------------------------------
  1336.  
  1337. You might have noticed that Forms has in essence NO description in
  1338. the Imagine manual. The manual's tutorials do not describe how the Form
  1339. Editor works or why you should use it other than "It is very powerful"
  1340. and "It can make organic forms easily." I don't blame Rick Rodriguez- 
  1341. the Forms Editor is difficult to understand and hell to explain even
  1342. in person.
  1343.  
  1344. It is very hard to describe how the Forms Editor works. It uses a very
  1345. strange method of defining it's objects that is difficult to put into
  1346. words. You might want to re-read this explanation a few times, since
  1347. the Form Editor is much easier to control when you know what it is
  1348. doing and how it determines your object's shape.
  1349.  
  1350. The Forms Editor defines it's objects as a set of varying radii
  1351. cross-sections. You have a great amount of control over both the shape
  1352. and size of these cross-sections.
  1353.  
  1354. Think of an orange, and the wedge-shape segments that make up the
  1355. orange's cross section. If the orange wedge were in the shape of a
  1356. square instead of a half-circle, the orange would become a cylinder
  1357. instead of a sphere.  If you make the square wedges in one direction a
  1358. different size than the wedges at 90 degrees to them, the orange
  1359. distorts into a squashed cylinder which looks like an oval from the
  1360. top.
  1361.  
  1362. If you define the wedges to be square in one direction and crescent
  1363. shaped the other (90 degree) direction, you will get an orange shaped
  1364. like a cross between a cylinder and a sphere- the resulting object is
  1365. something like a sphere with two ends sanded to a smoothly
  1366. beveled edge.
  1367.  
  1368. Another way we might mutate the orange is instead of changing the
  1369. shape of the  wedges, we can change the radius of each wedge
  1370. as we look at them from the top of the orange. If the wedges on the
  1371. front side of the orange have a larger radius than the rest of the
  1372. wedges (but the same shape), the orange is going to look like it is
  1373. ballooning with air pressure with one swollen side. 
  1374.  
  1375. If the radius of each wedge changes as you go around the orange
  1376. (perhaps an alternating big-small-big-small), the orange will take on
  1377. a fluted, star-like horizontal cross-section. Any vertical
  1378. cross-section will still be circular.
  1379.  
  1380. Got that so far? Well, this is exactly what the Form Editor allows you
  1381. to do. You can define a the shape of these wedges in both the
  1382. front-to-back and left-to-right directions, as well as having
  1383. completely independent control over the radial size of these cross
  1384. sections. 
  1385.  
  1386. When you mix these abilities, you can produce an AMAZING number of
  1387. complex shapes, especially since each wedge can loop up and down and
  1388. form holes and cross over itself. No tree ever made an orange with the
  1389. peel intersecting itself, but the Forms editor will gladly create a
  1390. shape like this for you.  The Forms editor handles all of the details
  1391. and bookkeeping, and lets you worry about your form.
  1392.  
  1393. The actual mechanics of producing the object are a bit complex, though
  1394. straightforward. There are four user-defined cross sections (at 0, 90,
  1395. 180, and 270 degrees, looking from the top) each with the same number
  1396. of points defining it. Every section around the orange comes out at a
  1397. certain angle (like 45 degrees) and its cross section is interpolated
  1398. from the four pre-defined cross sections (probably linearly, it's hard
  1399. to tell). For the 45 degree example, the cross section would be
  1400. formed by taking the 0 degree and 90 degree user defined cross sections
  1401. and assigning each 45 degree cross section point a position mid-way between
  1402. its corresponding location at the 0 degree cross section  and its
  1403. location at the 90 degree cross section. Thus, the cross section will
  1404. smoothly change from one shape to another as you move around the form.
  1405.  
  1406. Once the vertical cross section is determined, they are scaled
  1407. radially by an amount given by the radius of the user defined
  1408. HORIZONTAL cross section (the top view). An area where the horizontal
  1409. cross section has a radial bulge will cause the wedge at that point to
  1410. stick out a bit more. These bulges can be as severe as you like.
  1411. Instead of a bulge, it is easy to make a sharp knife point.
  1412.  
  1413. This method of defining objects gives you an amazing amount of
  1414. control.  The radial control alone is completely flexible, allowing
  1415. you to use negative radii, or move the points so that the outside
  1416. surface actually reverses itself and backtracks.  The vertical cross
  1417. section is equally malleable, allowing you to make self-intersecting
  1418. walls that are either closed or tube-like. [Or both!]
  1419.  
  1420. That's it! The user defined vertical and horizontal cross sections
  1421. completely determine the shape of the object. It is very useful to
  1422. know how the form is actually constructed- it is not easy to figure
  1423. out, and the documentation does not describe the method at all. Once you
  1424. understand how Imagine makes the object, you can actually plan how to
  1425. build a specific shape.
  1426.  
  1427. One great advantage to the Forms Editor is the fact that the form is
  1428. continuous- it is made one piece. This means that making smoothly
  1429. rounded corners is easy. Organic forms in particular do NOT have sharp
  1430. right angles and flat planes in them, and are particularly well suited to
  1431. creation in the Forms Editor. Any object created in the Detail Editor
  1432. tends to be made of extruded or primitive objects joined together- there
  1433. is rarely any smooth transition between the joined segments.
  1434.  
  1435. --------------------------------
  1436. Part II- Use of the Forms Editor
  1437. --------------------------------
  1438.  
  1439. The actual creation of these cross-section forms is pretty easy. The
  1440. Form editor is particularly fast in it's response, since the tri-view
  1441. does not have as many points to update as the view in the Detail Editor.
  1442.  
  1443. When you start up the Forms Editor, you have the option of loading in
  1444. an old form or starting a new one (By choosing "load" or "new" from the
  1445. Object menu). You have a decision when you make a new object on
  1446. whether you want an X-Y cross-section or an X-Z cross section. The X-Y
  1447. option makes your object like the orange- the segments are all
  1448. arranged around the vertical axis. X-Z orients the object on its side,
  1449. like a piece of wood on a lathe. (The Form editor can emulate a lathe
  1450. very easily, but is much, much more versatile.) Most of the time
  1451. you'll want an X-Y cross-section, but everything works similarly for
  1452. an X-Z. 
  1453.  
  1454. You also have a choice on how many points and cross sections to add.
  1455. The "# of slices" is NOT the number of orange segments, but the
  1456. number of points that defines each orange segment. The "# of points" is
  1457. the number of orange slices you have. These labels are defined sort of
  1458. backwards, but if you confuse them it is easy to fix. I feel the
  1459. default numbers are very large- its easier to start with a simple
  1460. version of your form and add points later for detail. It is EXTREMELY
  1461. easy to increase (or decrease) the number of points and segments
  1462. later, so I usually start with something like 12 points, 8 sections.
  1463. Again, this is easy to change later. If you start with many
  1464. points, it takes a considerable amount of time just to move each of
  1465. the points into your coarse shape before you refine details.
  1466.  
  1467. The default start up form is that of a sphere with two small holes in it
  1468. at the top and bottom. 
  1469.  
  1470. The Form Editor does NOT display objects in it's triview like the
  1471. stage and detail editors do. It shows the vertical cross sections (the
  1472. orange wedge shapes) in the front and right views, the horizontal cross
  1473. section (wedge radius as you go around) in the top view. The perspective
  1474. view is accurate, and you can select wireframe, solid, or shaded mode
  1475. by using the View menu just like you would in the other Editors. I prefer
  1476. solid because many forms get very complex very fast, and it is difficult to
  1477. see the basic structure in the wireframe mode.
  1478.  
  1479. To manipulate a cross section, you just grab a point and move it to
  1480. where you want. You can change all FOUR of the vertical cross
  1481. sections- if you look in the bottom views, each cross section is a
  1482. separate string of points. If you select a point, it's corresponding
  1483. points on each of the other cross sections will highlight for
  1484. comparison. You can define each cross section completely
  1485. independently- the front view will let you manipulate the cross
  1486. sections of the orange at 0 degrees and 180 degrees, and the right
  1487. view will let you set the 90 and 270 degree cross sections.
  1488.  
  1489. Note that the 4 cross sections are not connected at the top and
  1490. bottoms. You are free to move the top and bottom away from the center
  1491. axis. Moving the points so they lie on top of each other on the Z axis
  1492. will cause the object to close at that point. Moving one or more points
  1493. away from the axis will cause a hole or entrance to the center of your
  1494. object to appear. This allows your object to be open at the top and/or
  1495. bottom, so you could have a tube or bowl instead of a sphere. 
  1496.  
  1497. If two opposing cross sections (like 0 and 180 degrees) touch and the
  1498. other two do not, you will end up with an object with an intersection in the
  1499. shape of a bow tie. If you do connect any of the points (you can
  1500. connect in the middle, too!) you might want to make sure they are
  1501. EXACTLY on top of each other and then use the Detail Editor MERGE
  1502. command when you're finally done with design. This will decrease the
  1503. file size of your form, increase rendering speed, and increase the
  1504. ability of the Phong shading.
  1505.  
  1506. Most of the time you don't need to control each individual point, and
  1507. if you were making a simple object it would be irregular due to slight
  1508. differences in the cross-sections. The Form Editor has a very useful
  1509. feature called symmetry that will fix this problem. If you turn on
  1510. symmetry, whenever you move a point, it's corresponding point(s) will
  1511. follow and put themselves in the corresponding position. There are
  1512. five options for symmetry:
  1513.  
  1514.  o None.  Every point is completely independent. Default.
  1515.  
  1516.  o Front. The 0 degree points will follow the 180 degree points
  1517.           and vice versa. 90 and 270 are completely independent.
  1518.  
  1519.  o Right. The 90 degree points will follow the 270 degree points
  1520.           and vice versa. 0 and 180 are completely independent.
  1521.  
  1522.  o Both.  The 90 degree points will follow the 270 degree points
  1523.           and vice versa. The 0 degree points will follow the 180
  1524.           degree points and vice versa. Think of it as "oval"
  1525.           symmetry.
  1526.  
  1527.  o 90     Every point will follow the corresponding point in every
  1528.    degree view. Complete radial symmetry.
  1529.  
  1530.  
  1531. These symmetry options are very easy to use. Note that turning on
  1532. symmetry does not immediately make the cross sections symmetric-
  1533. only points you touch and move will change.
  1534.  
  1535. Most graceful objects have at least one axis of symmetry, many have
  1536. two, and some have 90 degree symmetry. Note that 90 degree symmetry is
  1537. actually completely circular. Thus, any swept object (from the Detail
  1538. editor) can actually be made by using 90 degree symmetry and keeping
  1539. the radius constant (the top view of the horizontal cross-section).
  1540.  
  1541. The top view does not have any symmetry controls, and sometimes it
  1542. would be nice to be able to keep the points somewhat ordered. One way
  1543. around this is to use "lock" from the select menu. Lock will
  1544. automatically snap any point you move to the nearest grid location to
  1545. where you let it go.  This is very useful for making straight lines,
  1546. or for creating symmetric cross sections in the top view. You can also
  1547. select a bunch of points at once (using the shift key) and use "snap
  1548. to grid" in the object menu. This makes each point move to the grid
  1549. location closest to it. You can use the drag box or lasso to help
  1550. choose what points to select.
  1551.  
  1552. Grid size is obviously very important when using lock, since it
  1553. determines the grid intersections. I definitely recommend using grid
  1554. sizes like 32, 64, and 128. Using 20, 25, 50, 100 certainly seems
  1555. reasonable until you start dealing with grids like 6.25 or 3.125.  The
  1556. power-of-two grids also work well with zooming, since zoom-in and
  1557. zoom-out double and halve the screen scale. This is obviously a matter
  1558. of choice for each user. Some times when dealing with real blueprints
  1559. or measured objects, different scales are much easier to deal with.
  1560.  
  1561. There is no question that when you want to build an object in the
  1562. Forms Editor, you should start simple and work up. Unlike the Detail
  1563. Editor where adding new (non-modular) details is difficult, adding
  1564. more polygon resolution is a snap in the Forms Editor.
  1565.  
  1566. There are actually three modes to the Form Editor. The default is
  1567. "Edit" which allows you to drag points around to define the
  1568. cross-sections. However, you can also add new points by selecting
  1569. "Add" and clicking on CURRENT points. A new point will be added on the
  1570. line connecting the point you clicked on and one of it's neighbors.
  1571. You can also position this new point by keeping the mouse button down
  1572. and dragging the point to its new location. You can edit these new
  1573. points in Edit mode at any later time.
  1574.  
  1575. If you add a new radial point (top view) you'll see the point appear
  1576. at the next (clockwise) segment.  If you add a new vertical cross
  1577. section point, you'll see FOUR points appear, one in each of the four
  1578. cross section (this is reasonable- the cross sections can't have
  1579. different numbers of points!)  Deletion is done by selecting delete
  1580. mode and clicking on the unwanted points. Again, 4 points will go away
  1581. if you select a cross section from the front or right views.
  1582.  
  1583. It is so simple to add points that defining a new object with a lot of
  1584. starting points is silly. It is VERY difficult to control that many
  1585. points, especially in the top view where there you can't use symmetry.
  1586. It is easier to start off with about 8 points per vertical cross
  1587. section and around 12 radial sections, and arrange these in a coarse
  1588. approximation of your object to get general shape and proportions,
  1589. then add more points for details. Trying to stretch a cross section
  1590. with a lot of points can be a royal pain. 
  1591.  
  1592. Remember, the plan is to start off with a few points and work up. You'll
  1593. often find you don't need as many points as you thought to get a well
  1594. defined object. The example projects all use a few points to define the
  1595. coarse shape, then add point to make fine details.
  1596.  
  1597. ------------------
  1598. Part III- Examples
  1599. ------------------
  1600.  
  1601. As a final demonstration of how the Form Editor is used, I'll describe
  1602. three tutorial objects you can make. You are EXTREMELY advised to sit
  1603. down an make these objects. Reading the tutorial is fine, but moving
  1604. the mouse around is the best way to learn how to make these sorts of
  1605. things yourself.
  1606.  
  1607. There are some screen grabs of some key steps in these tutorials in a
  1608. file called Form_Tutorial.lzh on hubcap.clemson.edu in the
  1609. /pub/amiga/incoming/IMAGINE/MISC directory. These screen grabs show
  1610. the step by step evolution of the examples, as well as a couple of
  1611. rendered examples. You might want to get these (especially for the
  1612. last example) but you're welcome to wing it by using the text alone.
  1613. The file also has a copy of this text in it, so you won't have to
  1614. separate this mail message out if you're getting it on the mailing list.
  1615. If you don't know what FTP is, ask a local computer wizard and hope
  1616. you have access. :-)
  1617.  
  1618. ---------------------------------------------------------------------
  1619.                        A Coke (TM) Can
  1620. ---------------------------------------------------------------------
  1621.  
  1622. The Detail Editor has a powerful tool called sweep that can create
  1623. simple radially symmetric objects like a soda can or a candlestick
  1624. holder. However, the Forms editor can one-up sweep pretty easily.
  1625.  
  1626. Our goal is to create an object in the shape of a standard 12 ounce
  1627. soda can with all the details like the hollow on the bottom and the
  1628. little metal ridge on the top. The Forms Editor can create objects
  1629. like this with no trouble, and do it faster and much easier than using
  1630. the Detail Editor to spin a line outline of the can would take.
  1631.  
  1632. Enter the Form Editor, and make a new form (in the Object menu) with 4
  1633. slices and 20 points. A can at first approximation is just a cylinder.
  1634. We need many points around the radius to get a nice smooth circle
  1635. cross-section, but only a few slices to define the rectangular
  1636. vertical cross-section. For this example, we'll never muck with the
  1637. 20-point circle cross section.
  1638.  
  1639. The cylinder is obviously radially symmetric, so we will probably want
  1640. to turn on 90-degree symmetry from the symmetry pull-down menu.  The
  1641. points that you manipulate in the front and right views will now move
  1642. their corresponding siblings, keeping the object radially symmetric.
  1643.  
  1644. To make a quick and dirty cylinder, move each point in the vertical
  1645. cross sections so that they are on the same Z line- they should stack
  1646. vertically on top of each other. I like manipulating the right hand
  1647. cross section in the Front view. Remember, the symmetry mode will move
  1648. the other three points for you. You can use the perspective view to
  1649. see what effect you're having on the form.  You might look at the
  1650. screen-grab called can_one to see how the first simple model should
  1651. look.  Again, these screen-grabs have to be downloaded from the FTP
  1652. site hubcap.clemson.edu.
  1653.  
  1654. What do we get? Well, our horizontal cross section is unchanged, its
  1655. still a nice circle. We don't want to muck with it. Our horizontal
  1656. cross section is a nice straight vertical line. If you think about it,
  1657. this should give us an object in the form of a tube. If you look at
  1658. your perspective view and don't see a tube, something is wrong. Look
  1659. at the can_one picture again to see what the problem is.
  1660.  
  1661. There are two problems with this tube. First, the sides are a bit
  1662. wavy, since each point was moved manually and they might not be
  1663. exactly on the same vertical line. Second, if we really want to make a
  1664. Coke can, we should at least get the proportions and scale right so we
  1665. don't have to squash and stretch things later to get it to look
  1666. reasonable.
  1667.  
  1668. To fix the wavy line problem, we just use "lock" mode from the
  1669. select menu. Remember, this will make any point we move jump to grid
  1670. intersections, so if we move the points around by the same Z line
  1671. they'll all line up on the same grid line.
  1672.  
  1673. We should also figure out how to get the right can proportions. If you
  1674. get out a ruler, you'll find a standard Coke can is 12.2 cm tall and
  1675. the main body is 3.25 cm in radius. It is difficult to accurately
  1676. change the radius of our form, but we can make every other measurement
  1677. use the default radius of 100 Imagine Units as a reference. Hence,
  1678. there are 3.25 cm in 100 Imagine Units, so the can should be 375 units
  1679. high.  If we change the grid spacing to 25, our can should be fifteen
  1680. grids high.  It is easy to automatically set the height of our object,
  1681. because the points will leap to the right position when we move them
  1682. to the correct (coarse) point. You might want to turn on "coordinate"
  1683. mode from the display menu to help identify where you are moving your
  1684. points.
  1685.  
  1686. It might occur to you that we also don't want a tube, we want a solid
  1687. cylinder, with ends. This is easy to make, we'll just take the top
  1688. cross section point and move it to the Z axis to enclose the top and
  1689. move the bottom point to the Z axis to enclose the bottom. This gives
  1690. us the rectangular cross-section we need to form a cylinder.
  1691.  
  1692. We'll make our can so that the axis is at the very bottom, at 0, 0, 0,
  1693. and the can rises to a height of 375 in the Z direction.
  1694.  
  1695. To actually change our rough tube to this properly proportioned, capped
  1696. cylinder, set the grid size to 25, turn on lock, and move the top
  1697. right point in the FRONT view to the 0, 0, 375 grid intersection. The
  1698. other views should show the corresponding points moving up as well.
  1699. Move the second point to form the outside top edge of the can, to 100,
  1700. 0, 375. The third point forms the side, at 100, 0, 0, and the last
  1701. point will define the bottom, and should go to 0, 0, 0.
  1702.  
  1703. Your can should look like the picture can_two.
  1704.  
  1705. Ok, this DOES indeed look like a nice cylinder. So how do we get the
  1706. nice details like the top rim, and the dent on the bottom, and the
  1707. narrower "lip ridge" just below the top rim?  I said that it was easy
  1708. to add detail once you had a basic, crude form. Let's make the bottom
  1709. dent of the can.  Turn _off_ lock, so that we can move the points
  1710. freely to whatever location we want. We want to add come points to the
  1711. vertical cross sections so we have more control over the shape of the
  1712. can.
  1713.  
  1714. Select 'Add' from the mode menu. Now, whenever you click on a point, a
  1715. new point will appear at the midpoint of the line below it. We want to
  1716. add a point to the very bottom line segment (Which is currently the
  1717. horizontal line making the bottom of the can).  Just click on the
  1718. bottom outer point and a new point should appear on the bottom
  1719. horizontal line. Enter 'Edit' mode from the mode menu, and you'll find
  1720. this new point is just as easy to manipulate as the originals.
  1721.  
  1722. To form the bottom dent, we want to move the very last point on our Z
  1723. centerline UP to make a cavity. The point should be moved about a third
  1724. of a cm, or 10 units. You might want to turn on 'coordinates' from the
  1725. display menu to help measure the distance. Once you move the point up,
  1726. you'll see the dent in the perspective view if you move it so you can
  1727. view the bottom of the can. The new point that we added can be moved
  1728. up to make the bottom dent more bowl-like instead of a cone.
  1729.  
  1730. The trick to adding detail is to identify where you want to add a new
  1731. feature. If you want to add a new dent or bulge, a new point added at
  1732. the location you want can be moved in or out to make the feature.  If
  1733. you need to line things up, judicious use of changing the grid size
  1734. and using 'lock' will let you place the points accurately. Note that
  1735. the Forms editor LACKS the transformation requester that you find in the
  1736. Detail Editor, so you can't just type in coordinates for critical
  1737. points. You have to use grid size and lock to accurately place
  1738. objects.
  1739.  
  1740. OK, we know how to add details. Now how do you take the measurements
  1741. off of the can? There are a few ways- you could judge by eye, you
  1742. could take a ruler and measure everything, or you can try sneaky
  1743. tricks. If you fake it by eye, your model is obviously going to be
  1744. somewhat inaccurate, even if you use a can sitting right next to you as
  1745. a model. Measuring distances works quite well, though. I used a finely
  1746. measured rule and a sheet of graph paper to transcribe the shape of all
  1747. the ridges and bumps. Inputting these coordinates to Imagine involves
  1748. using the Coordinates display and matching points. 
  1749.  
  1750. However, there is a quick and dirty trick you can use, though this
  1751. probably isn't applicable to most objects you model. Zoom the front
  1752. view so that it takes up the whole screen. Center your can in your
  1753. display by using the "set center" command in the Display menu and
  1754. clicking at the center of your object. Now, zoom in or out until the
  1755. size of the outline on your monitor approximates the real size of a
  1756. Coke can. Take a real can, and press it against your monitor, then 
  1757. eye it. Use the radius as the determining factor, not the height.
  1758. Now repeatedly use the "set zoom" command from the display menu and
  1759. muck with the zoom to get the screen can size as close as you can to
  1760. the real can size when you press it against the monitor. On my 1950
  1761. monitor a zoom of 1.05 worked well, but it will vary from monitor to
  1762. monitor.
  1763.  
  1764. Once you match sizes, you can actually press the can against the screen
  1765. with one hand, and move points to match the can outline with the
  1766. other. [You'll look like a fool if anyone else is around, too!]
  1767. However silly this seems, I found it the easiest way to input the
  1768. shape of the can. When I sat with a ruler and some graph paper, my
  1769. paper diagram turned out to be less accurate as the screen method and
  1770. took much more time.
  1771.  
  1772. A rehash on adding the fine details: You have a rough outline. To
  1773. refine it, just pick the area you want to refine, add a new point on
  1774. that line, and drag it where you want it. I found that getting a highly
  1775. accurate cross-section (using 17 points) took less than 3 minutes with
  1776. the admittedly stupid screen trick. Using a ruler I spent 10 minutes
  1777. measuring and converting before I even moved the mouse.
  1778.  
  1779. When you're done, you should have an outline similar to mine, which is
  1780. shown in the picture can_three.
  1781.  
  1782. Take a look at your object in the perspective mode with the window zoomed
  1783. to full screen, and solid display mode on. Rotate the view up and down.
  1784. Nice, huh?
  1785.  
  1786. What about the top hole, and the tab? The tab is easy to add in the
  1787. Detail Editor, by extruding a flat outline. If you expected to make it
  1788. as an integral part of the can form, I'm sorry to say you were
  1789. expecting a bit much. The Form Editor likes to make single-piece
  1790. objects, and you can see how the tab is really a separate part of the
  1791. can "form." This doesn't prevent you from making a separate tab object
  1792. and sticking it on, and this is exactly what I did.
  1793.  
  1794. The hole, on the other hand, is pretty easy to include using the Form
  1795. Editor! If the hole is facing towards us as if we were going to take a
  1796. drink, the hole is obviously non-radially symmetric, and it is not
  1797. front-back symmetric. It IS left-right symmetric. Turn the symmetry
  1798. from the radial '90-degree' to 'right'.  Now, in the FRONT view, move
  1799. the top point (that is now on the Z axis) straight OUT about a third
  1800. of the way to the outer radius.  This is the WIDTH of the hole on top.
  1801.  
  1802. In the RIGHT view, move the left-top point (which is the front-top on
  1803. the can) about 90% of the way to the can rim. Leave the right-top
  1804. point where it is. The finished can form can be seen in picture
  1805. can_four.
  1806.  
  1807. See what we've done? Moving the points away from the center made a
  1808. hole. We made the front-to-back cross section asymmetric to one side,
  1809. so the hole location is moved. Look in the perspective view. Play
  1810. around with moving the hole around and turning symmetry on and off.
  1811.  
  1812. Why did this make the asymmetric hole? Remember how the form is
  1813. generated? Each cross-section is interpolated from the 4 defined cross
  1814. sections. The front cross section blends to the right, which then
  1815. blends to the back, then to the left, then back to the front. This is
  1816. very hard to describe, but play with the points and you'll see the
  1817. kind of control you have. 
  1818.  
  1819. Note that the hole is an oval, which is not quite true for a can. The
  1820. Forms editor really won't let you do much more unless you want to
  1821. start mucking with radius modulation, but that's for the next example.
  1822.  
  1823. This completed can object can object can be loaded into the Detail
  1824. editor, at which point it becomes a normal object. You can move
  1825. individual points, apply brush maps, attributes, textures, and
  1826. manipulate it in any way you would a normal object. After manipulation
  1827. in the Detail Editor, the objects are generally not reloadable back
  1828. into the to the Forms editor. Using the Detail editor, you might make
  1829. and attach the can tab, or move individual points on the top hole to
  1830. make the ellipse to match a real can's hole more accurately.
  1831.  
  1832. A final rendered view of a can generated using this tutorial can be
  1833. seen in the HAM image 'Craftsman', where you can see two separate
  1834. versions of the can. The carved wood Coke logo was an experiment that
  1835. turned out well. The Coke logo itself was made with wire cutters, a real
  1836. can, Digiview, and an hour's touchup in DPaint III.
  1837.  
  1838. The can could have also been generated in the Detail editor by using
  1839. the powerful "Sweep" mold function. However, sweep certainly does not
  1840. provide the interactive updates that the Forms Editor does, and can
  1841. only make completely symmetric objects. The next examples will show
  1842. how much more powerful the Form Editor is when it makes very
  1843. non-lathed objects.
  1844.  
  1845. ---------------------------------------------------------------------
  1846.                      Building a Water Splash
  1847. ---------------------------------------------------------------------
  1848.  
  1849. Think of a ball dropping into a pool, and how a corona of water spurts
  1850. out around it. The splash is vaguely symmetric, and is certainly not a
  1851. group of primitive cylinders and tori merged together. 
  1852.  
  1853. Building a splash like this using the Forms Editor is obscenely easy,
  1854. much easier than the Coke can!  It is even simple to animate the
  1855. splash!
  1856.  
  1857. If we want to make a crude splash model, we should first envision what
  1858. a cross section of such a splash would look like. The picture
  1859. splash_one is a 10 second DPaint line drawing of how I see water would
  1860. splash up and away at the peak of the splash. The center is disturbed
  1861. but mostly flat, and there is a steep "wall" of water at at certain
  1862. radius pointing out and up. It curls a bit at the top, with a bulge at
  1863. the peak, and slopes back IN and down. Outside the wall the water is
  1864. less disturbed. The wall is the 'shock wave' and is expanding (and
  1865. falling) with time.
  1866.  
  1867. It is very, very easy to make a primitive version of this in the forms
  1868. editor. We pretty obviously want our main axis that our slices are
  1869. centered around to be vertical. Start a new form, with 30 points and
  1870. 10 slices, which should give us enough detail to rough something out.
  1871.  
  1872. Initially, we'll want to make the splash symmetric. Later, we can add
  1873. asymmetric details, but for now we want the coarse primitive to be
  1874. radially symmetric, since it will define the basic structure of the
  1875. form. Use the '90-degree' mode in the Symmetry menu.
  1876.  
  1877. The initial spherical horizontal cross section is completely useless
  1878. for our purposes.  Pick a height at which you want to base the splash
  1879. (the bottom point of the cross section is a logical choice) and when
  1880. you're building the splash, imagine that it is sitting on top of this
  1881. water. It will give us a good reference point.
  1882.  
  1883. Pull the top point of the cross section way out and down to the water
  1884. level. Keep the bottom point in at the center, and also at the water
  1885. level. The inbetween points should be moved into a crude outline of
  1886. the sloping water wall that we envisioned. My initial model is shown in
  1887. the picture splash_two. It took about a minute to build.
  1888.  
  1889. Look at the perspective view. A bit bland, but it is certainly on the
  1890. right track. Add a few points to the cross section at the top of the
  1891. water wave to give it a more complex, bulging appearance. You might
  1892. want to add some points near the base, especially on the inside, and
  1893. make the water near the wave a bit more ragged.
  1894.  
  1895. Now what? Our coarse form was trivial to make, but is far to
  1896. artificial. Let's jazz it up! Turn OFF symmetry, and muck around with
  1897. ALL FOUR cross sections. You can increase the height of the wave in
  1898. one, make the water a little rougher in another, make the peak on one
  1899. a bit more curved... give them character. DON'T make huge changes like
  1900. adding a second wave (you're welcome to try!)  but certainly make them
  1901. a bit different from each other. Think of adding a 25% noise level.
  1902. You might keep an eye on the perspective view, as well- it will show
  1903. you how the Forms Editor copes with blending these different shapes
  1904. together.
  1905.  
  1906. Now what? A little more variation? There's no reason the splash has to
  1907. be a perfect circle, or even an oval, is there? Of course not. The TOP
  1908. display shows what the HORIZONTAL cross section of our splash looks
  1909. like. Right now it's a nice circle. Now, our splash really should be
  1910. pretty circular when looked from above, but not perfectly... Go ahead
  1911. and muck with the shape, and again, watch the perspective view to see
  1912. what happens. You might want to leave SOLID mode on, especially with a
  1913. fast machine, since the wireframe of such a non-structured object is
  1914. often very confusing.
  1915.  
  1916. You can move the radial points any way you like. I suggest that you
  1917. only move them generally in and out, or the splash will get somewhat
  1918. lopsided. Also, avoid having sharp spikes. You can see how easy it is
  1919. to make our splash look like the Statue of Liberty's crown. 2 or 3
  1920. point bulges look very nice, major details formed with just 1 point are
  1921. sharp and look like knives. Not very appropriate for a soft water splash!
  1922.  
  1923. My final splash is shown in the picture splash_three. A
  1924. rendered version with three different splashes is called Ocean_Sunset. 
  1925. Ocean_Sunset is actually a still from the current version an anim I'm
  1926. working on.  It has the dolphins jumping around, the water moving with
  1927. wind-driven waves, and eventually will have a ship slowly steaming
  1928. along with a nice wake and smoke. The animation of the splashes 
  1929. still need a lot of tweeking, but it's getting better. This is still a 
  1930. work in progress, but it looks nice even now.
  1931.  
  1932. What about animation? I said it was easy to animate, but how?  Well,
  1933. let's think of what the animation SHOULD look like, then figure how to
  1934. implement it. How does a splash evolve? The big wall of water starts
  1935. at the center of the circle and moves outward at a pretty constant
  1936. speed. It grows in height, curls over, and crashes down as is
  1937. progresses. If we make maybe 4 or 5 splashes, one for each stage of
  1938. the splashes growth, we can just move from one to the other. How?
  1939. Morph! Morph is easy to forget when you're dealing with complex
  1940. objects like splashes. Since morph requires its objects to have the
  1941. same structure, different complex objects often won't work with each
  1942. other.  However, if we use the same basic starting form for each of
  1943. the splashes (same # points and slices) we can have Imagine smoothly
  1944. interpolate from one form to the next.
  1945.  
  1946. Considering the fact that creating the splash took maybe 5 minutes,
  1947. you can see that making an entire animated splash is a 15 minute task.
  1948. You don't even have to make new splashes, just modify old ones! When
  1949. animated, you might add frills like separate objects for flying water
  1950. droplets, and have them follow parabolic arcs.  The Form Editor won't
  1951. let you make detached objects like that, so you'll have to make them
  1952. as separate objects that fly out, as opposed to pinch off and fly
  1953. away... You might also use two different splash forms superimposed to
  1954. give the splash a more complex character. The splash we built is still
  1955. a bit plain.
  1956.  
  1957. This example should impress how easy it is to make complex shapes with
  1958. an amazing amount of speed and control. Asteroid-maker, indeed!
  1959.  
  1960.  
  1961. ---------------------------------------------------------------------
  1962.                      A Complex Boat Hull
  1963. ---------------------------------------------------------------------
  1964.  
  1965. Making a boat hull might not seem very easy. If we want to use the
  1966. Form editor, shouldn't there be some sort of near-radial symmetry? It
  1967. turns out that you can really push the Forms Editor around in ways
  1968. Impulse hoped we'd discover.
  1969.  
  1970. A boat hull is a pretty simple object, right? Well, sorta. If you
  1971. wanted to build one in the Detail editor, you'd make an outline the
  1972. shape of an iron (as in for pressing clothes), then you'd extrude it
  1973. and use slice to make the bottom.
  1974.  
  1975. Well, this would work, but it's a pretty cheesy boat hull, no matter
  1976. how good your iron outline was. Even if you were a good modeler, made
  1977. a series of outlines and used skin to blend them, you are going to get a
  1978. hull that is boxy as opposed to a nice graceful curve.
  1979.  
  1980. Think of a big ocean-going vessel, not a cheeseball rowboat. The prow
  1981. is sharp, to cut into the water, and it angles down and back. The body
  1982. of the hull is fairly straight, and the stern rounds off smoothly with
  1983. a flat face as opposed to the prow's sharp point. At no point,
  1984. however, does the hull look like it was constructed of different
  1985. sections. To reduce drag, the shape smoothly changes both from the top
  1986. view (a teardrop with a squashed bottom?) and the side view. It has
  1987. one axis of symmetry (left/right).
  1988.  
  1989. How could we ever model this in the Detail Editor? Not easily, and
  1990. certainly not in one piece. 
  1991.  
  1992. Well, fine. But how could we ever model this in the Forms Editor,
  1993. either? It certainly is not very obvious.
  1994.  
  1995. A big hint of how we would design a form for the hull lies in where
  1996. we place the center, the radial point, of our cross sections. We also
  1997. have to decide whether the slices should be coming out horizontally
  1998. (like the axis was a vertical mast) or at right angles. The choice is not
  1999. obvious. 
  2000.  
  2001. If the axis is horizontal, then the radial sections would tend to
  2002. form a dome over the hull. If you made the radii of the 
  2003. overhead portion negative (There is no problem doing this!) 
  2004. we could just make a double-thickness of hull. This is messy, but
  2005. workable. 
  2006.  
  2007. The second option is to use a vertical axis, which gives us the
  2008. benefit of a simpler object since there is no "dome" to add extra
  2009. needless points.  We want to make a new form object with an XY cross
  2010. section. Select 3 slices and 7 points and we'll make a very simple
  2011. version of the hull and work from there.
  2012.  
  2013. The question is where to but the center of our (vertical) axis. There
  2014. are three places on the hull where there is a sudden change in
  2015. cross-section -- the bow, and the two stern corners. If we want to
  2016. make these changes fairly sudden, we probably want to define each one
  2017. of them as one of our 4 cross sections. The interpolated cross
  2018. sections by definition are interpolated, so there's no major change in
  2019. shape. Thus, we want the bow to be in line with one of the four cross
  2020. sections, as well as in line with the two stern corners. This makes
  2021. our choice easy- the only place we can do this is the very back of the
  2022. boat, along the (port-starboard) centerline.
  2023.  
  2024. Now that we've decided where to put the axis, how do we want to define
  2025. the cross sections? Well, we want something that is left-right
  2026. symmetric, and NOT front-back symmetric, so we should turn on
  2027. left-right symmetry.
  2028.  
  2029. We want to change the default nearly-closed spherical cross section to
  2030. something more resembling an open gravy dish. Move the very top point(s)
  2031. way out and down some. The front cross section point (the left one in
  2032. the Right view) should be moved the most. The back cross section point
  2033. should be moved down, but not out very much. Remember that the stern is
  2034. very close to the axis, and does not have much detail. 
  2035.  
  2036. The Front view should look somewhat like a big "U", and the Right view
  2037. should look like a sideways stretched "U" with one end (the bow) sloping
  2038. back and the other pretty vertical.
  2039.  
  2040. The horizontal cross section (top view) should look (reasonably) like 
  2041. a boat viewed from above. The front should be pointed, the back should
  2042. be fairly blunt, but rounding off to the sides. 
  2043.  
  2044. Describing the shape of these forms is harder than describing a Coke
  2045. can. Look at the picture hull_one to see what my crude shape looks like.
  2046.  
  2047. You can see in the perspective view that this basic form has a little 
  2048. hull-like character. It is sharp in front, and has a blunt rear. You can
  2049. add extra points to each of the views to make a smoother form with
  2050. more details. My final boat hull is shown in picture hull_two. To get an
  2051. idea of how complex the real object is, there is a picture of the same
  2052. hull shown in the detail editor in picture hull_three.
  2053.  
  2054. ----------- 
  2055.  
  2056. The last example is much shorter than the rest, because there is
  2057. little more to say about the Forms Editor. What is does is very
  2058. complex, but there are few sneaky tricks once you learn how to control
  2059. the shape of your objects. The best way to become proficient with the
  2060. forms editor is to practice! I challenge you to build a banana.  Or a
  2061. light bulb WITH threads! [It's quite possible, though annoying]. How
  2062. about a good pencil object with six sides?
  2063.  
  2064. This wraps up the tutorial on using the Forms Editor. Sometime in the
  2065. next month or so I'll be writing a similar (though probably even
  2066. longer!)  tutorial on the using the Detail Editor and another on the
  2067. general process of object design and creation.
  2068.  
  2069. -Steve Worley   5/28/91
  2070.  
  2071. ---------------------------------------------------------------------------
  2072. Steven Worley                                       spworley@athena.mit.edu
  2073. ---------------------------------------------------------------------------
  2074.  
  2075. Because I was erked when my brush and texture tutorials were posted on
  2076. Compuserve sans credit, I include the following:
  2077.  
  2078. The text contained within this document as well as the associated 
  2079. computer files are (C) Copyright 1991 by Steven P. Worley. 
  2080. They be distributed freely under the following conditions: 1) The entire
  2081. text, including this copyright notice, is kept entire and 2) Steven Worley
  2082. is duly credited as being the author. The author reserves all other rights
  2083. to this text.
  2084.  
  2085. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2086.  
  2087. APPENDIX C:  VIDEOTAPE
  2088.  
  2089. i) dumping to videotape
  2090. ii) comments on dumping to videotape
  2091. iii) more comments on dumping to videotape
  2092. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2093.  
  2094. i) VIDEOTAPE- dumping to videotape, by Steve Worley:
  2095.  
  2096. Ian Lichter mailed me personally about dumping to videotape. There are three
  2097. avenues you can take. If you have a 24 bit display and want to record the
  2098. image in its professional glory, you're going to need a single frame video
  2099. tape recorder, (about $2500!) and a transport controller to control it. (
  2100. I get the feeling these run like $300, but I don't know). I don't know
  2101. the details- I don't know anyone who has actually done this.
  2102. A second, easier and cheaper solution is to use a product like DCTV, which
  2103. animates and outputs direct NTSC which can be plugged right into your
  2104. standard VCR. The quality is way lower than 24-bit, but the quality is 
  2105. also way higher than standard Amiga output. 
  2106. If you don't have a DCTV, you can dump standard Amiga output to video using
  2107. a genlock. This is a device that overlays Amiga graphics on video, but it
  2108. can be used to dump JUST the amiga graphics. The Video Toaster will do this,
  2109. as well as any genlock. I've never used one, but I've read several good
  2110. reviews of the $190 Minigen, and several bad reviews of the $99 Amigen.
  2111. What do I use? I havn't had the $$$ for a genlock, so I have a piece of
  2112. hardware called an encoder- it just converts Amiga RGB to composite video.
  2113. In fact, you might really want to pick one of these up- I have an A520
  2114. "RF Modulator for the Amiga 500", which I bought new for $35. It does
  2115. a superior job at encoding- as good as any genlock or the Toaster. [A
  2116. friend with a Toaster was in a huff until we compared videotapes. Couldn't
  2117. tell the difference, both were excellent.] Don't let the name fool
  2118. you- the A520 outputs both RF (for direct  plug-in to a TV) and
  2119. composite (I feed this to my VCR). It also works on any Amiga (I have
  2120. a 3000). It plugs into the RGB port, though it does  NOT have a
  2121. pass-through for a monitor. The A520 is definitely the cheapest way to
  2122. go if you just want to dump Amiga animation. 
  2123. Something to look for is Colorburst, which MIGHT be able to do really 
  2124. impressive color animation. [Nobody's seen this wonderful stuff yet, so
  2125. its still vapor.] It outputs RGB, which would have to be encoded by an 
  2126. external genlock (or an A520) before being able to be saved on videotape.
  2127. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2128.  
  2129. ii) VIDEOTAPE- more comments, by Scott Sutherland:
  2130.  
  2131.     Just to clarify, the DCTV hardware itself does not animate (I am sure
  2132. that all of you realize that, but (as they say about winning the Florida 
  2133. lottery) 'Ya Never Know'!).  What it can do is to 'decode' images with the
  2134. special DCTV color information in them as they are played back using the
  2135. standard RAM animation techniques (ANIMS ;^)).  It DOES look really nice.
  2136. The HAM-E will do this as well.
  2137. On Genlocking devices...
  2138. Steve Worley writes:
  2139. >I've never used one, but I've read several good
  2140. >reviews of the $190 Minigen, and several bad reviews of the $99 Amigen. 
  2141.     I read many articles on genlocking devices for the Amiga, including
  2142. some very technical ones which analyzed their output with professional 
  2143. equipment (way out of my field) including a vector scope, all of which panned
  2144. the Amigen.  Well, I was using a CMI VI-500RF (now DigiFEX, I think) 
  2145. encoder, similar to the A520, for dumping my video to tape (it also has a
  2146. really nice output and can easily be converted to work with SVHS as well).
  2147. I had wanted to play around with genlocking video and graphics, so when I
  2148. got a chance to buy a used Amigen for $50, I did it, despite the BAD reviews.
  2149. I have played around with it, as mentioned in one of my previous postings,
  2150. and the quality is surprisingly good.  At least for my HOBBY work.  The 
  2151. colors look nice and bleeding is not too bad.  It IS hard to read text (same
  2152. for my encoder), but that is to be expected.  I understand that where the 
  2153. poor output of the Amigen will hurt me will be if I do multi-generational
  2154. dubbing and/or copying.  But by then the VHS quality will not be to great 
  2155. either.  For JUST putting TITLES on videos or simple one-pass video/graphics
  2156. interactions, the AMIGEN will work just fine.  If you see one used and want
  2157. to play around with genlocking (I highly recommend it.  It's GREAT FUN and
  2158. can really get the creative juices flowing!!!), I recommend it.  If you are
  2159. doing anything that will be BROADCAST or even dubbed/edited into a final copy
  2160. and your final generation will be third or so, the Amigen will probably fail
  2161. miserably (my guess is that this is true for the Minigen and Progen as well).
  2162. However, when doing this type of editing, you will probably be doing SVHS 
  2163. anyway, so that might help.  BROADCAST quality IS OUT, though.  
  2164. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2165.  
  2166. iii) VIDEOTAPE- still more comments, by Mark Thompson:
  2167.  
  2168. Steve Worley writes:
  2169. > If you have a 24 bit display and want to record the
  2170. > image in its professional glory, you're going to need a single frame video
  2171. > tape recorder, (about $2500!) and a transport controller to control it. (
  2172. > I get the feeling these run like $300, but I don't know).
  2173. Actually, animation controllers run from about $1500 to $6000. However, the
  2174. soon to be released JVC S-VHS VCR will do single frame recording without
  2175. one (the first of its kind). It should sell for about $2200. Also, recordable
  2176. video disk units do not require a transport controller.
  2177. > A second, easier and cheaper solution is to use a product like DCTV, which
  2178. > animates and outputs direct NTSC which can be plugged right into your
  2179. > standard VCR. The quality is way lower than 24-bit, but the quality is 
  2180. > also way higher than standard Amiga output. 
  2181. I was doing this over the weekend. In 3bit mode I got about 15 fps and some
  2182. fairly high contouring (banding). In 4bit mode, image quality was much better
  2183. (though contouring was still evident) but my frame rate dropped dramatically,
  2184. maybe 5 to 7 fps. I was using PageFlipper F/X on a 2500/30 with 640 x 400
  2185. images. I might note that these were camera "flybys" through a city scape
  2186. at up to 105 miles/hour so there was a good sized delta from image to image.
  2187. The 60 frame animation was over 5meg in 4bit mode and about 3.3meg in 3bit.
  2188. Anyway, one thing to note about DCTV images converted from 24 bit renderings,
  2189. both 3 and 4 bit modes exhibit a fair amount of rainbowing. Any area that
  2190. is too "hot" (too much color bandwidth) will show a rainbow of colors. DCTV
  2191. includes a filter to reduce this effect (at the cost of sharpness).
  2192. > I have an A520 "RF Modulator for the Amiga 500". It does a superior
  2193. > job at encoding- as good as any genlock or the Toaster. A friend with
  2194. > a Toaster was in a huff until we compared videotapes. Couldn't tell
  2195. > the difference, both were excellent.
  2196. You will probably not notice much difference on a low quality VHS unit.
  2197. But believe me, when viewed with high quality video equipment (D2, U-matic
  2198. SP, recordable laser disk, etc.) there is no comparison. In video, one rule
  2199. *generally* holds true, "you get what you pay for".
  2200. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2201.  
  2202. APPENDIX D:  CENTAUR TAPE:
  2203.  
  2204. i) review
  2205. ii) second review
  2206. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2207.  
  2208. i) Centaur Tape Comments, by Richard Nollman:
  2209.  
  2210. I believe that this IS NOT the tape offered in the Impulse newsletter.  I
  2211. talked with Steve Worley last night who is in frequent contact with Rick and
  2212. asked the same question.  He said that as far as he knows it is not.  I thin
  2213. k Steve said something about it not being finished (not sure about this).
  2214. But the best person to ask of course (or second best) is Steve.  I am sure
  2215. he will post something about this.  
  2216. I met the guy who did the Centaur Imagine tape.  He was stapling the plastic
  2217. bags of people going into the Creative Computers booth (large Amiga mail 
  2218. order house) at the AmigaWorld Expo in NY last weekend so that people would
  2219. not steal things. Pretty crude I thought.  Anyway, I went to the Centaur 
  2220. booth to see the tape before I bought it, and their machine was broken.  
  2221. The person in the booth suggested that I talk to the person who made the 
  2222. tape, took me over the the bag stapler, and introduced me.  I questioned him
  2223. for about 10 minutes or so (which was very difficult -- Creative Computers 
  2224. was very busy and every 10 seconds or so a new crowd of people would need to
  2225. be stapled before they entered the booth).  Anyway, I described the initial
  2226. problems I had with the manuals, the help I received from the Imagine 
  2227. mailing list, and a friend who spent quite a bit of time working through 
  2228. the various editors with me.  I told him that I was creating simple 
  2229. animations with spheres moving and camera moving and doing chrome and 
  2230. reflectivity etc.  He said honestly that he felt that at that point I was 
  2231. beyond the tutorial.  It really was designed for people who could not use 
  2232. the manual to get started.  He said that it did not really get into much 
  2233. depth on setting attributes and things at that level.  So fortunately I did
  2234. not spend the money.  I met a poor soul who had some very nice Imagine 
  2235. renderings that were being displayed at the Black Belt booth who had bought
  2236. the tape (very excited about it). We had a great discussion about Imagine 
  2237. and ray-tracing.  He seemed very advanced.  I am sure he was pissed when he
  2238. played the tape...I hope he can get his money back...
  2239. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2240.  
  2241. ii) Second Review of Centaur Tape, by Mark D. Manes:
  2242.  
  2243. Warning Will Robinson... Danger, Warning!
  2244. Folks, I recently checked out the new Imagine video tape from Centaur 
  2245. Software... in a word, I think it, well, sucked.   
  2246. I hate to use words that strong, but the narration was terrible.  I
  2247. felt as though I was hearing stream of thought rather than a nice
  2248. presentation of the Imagine program.  Further after watching the 
  2249. nearly 90 minute tutorial (yawn) the creation that I suffered 
  2250. 90 minutes to see was ugly to bone.
  2251. The tutorial seems to be disjointed and does not explore the 
  2252. detail editor with any depth.  Further it breezes through the
  2253. description of adding faces to an object without ever really
  2254. showing you how to do it.  I about died when I watched the section
  2255. on the attributes requestor, the tape said things like the filter
  2256. gadget adjusts the filter settings!  Great, I could not have 
  2257. guessed that.  :-)
  2258. I _have_ created many interesting pictures just from following the
  2259. tutorials in the Imagine manual!  This tape would be great if
  2260. they had simply recreated the tutorials that are in the manual,
  2261. instead of taking me on a disjointed chaotic trip through Imagine.
  2262. This tape should be avoided at all costs.  
  2263. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2264.  
  2265. APPENDIX E:  SURFACE MASTER
  2266.  
  2267. i) Advertisement
  2268. ii) Review 1
  2269. iii) Review 2
  2270. iv) Additional Details
  2271. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2272. i) (I uploaded this from People/Link a couple of days ago - Mark Davis.)
  2273.  
  2274.     Introducing "Surface Master" for IMAGINE by Louis Markoya. A  
  2275. comprehensive collection of Attribute and Texture settings which  
  2276. allows you to master your renderings and achieve professional results.  
  2277.     The Surface Master package comes with a detailed manual explaining 
  2278. all  Attribute and Texture parameters, effects and how to animate 
  2279. those  effects plus hints and tips on special applications. A disk 
  2280. containing  IFF pictures illustrates each Attribute and Texture 
  2281. setting. All  objects and many attribute files are included.
  2282.     Attributes for many surface qualities like Chrome, Glass, Gold, 
  2283. Brass, Diamond, Emerald, etc., are included and explained. Proper Index's of 
  2284. Refraction  and custom settings are used for the best results in 
  2285. different Global  situations. In addition to these, many other preset 
  2286. examples explore  the  realm of possibilities within IMAGINE. 
  2287. Texture variables will be explained as well, with a wide array of each  
  2288. Texture's possibilities presented. For Example, Wood, has a matrix of  
  2289. settings to explore all of its parameters, and seperate settings for  
  2290. Pine, Oak, Zebrawood etc.. Pictures illustrate the wide array of all  
  2291. effects possible. The actual objects rendered are included. Settings  
  2292. and the discussion of their variation are covered in the manual.  
  2293. Textures can be animated and hints for the best settings are offered.  
  2294. The effects of moving the axis and the interaction of object size to  
  2295. Texture settings are explained.
  2296. Surface Master is of great value to both the novice and pro,  
  2297. eliminating the struggle to achieve those special results. 
  2298.  Those knowledgeable of his work are fully aware of  
  2299. his abilities, especially in Turbo Silver and IMAGINE. Now he shares  
  2300. many of his "secrets". The Surface Master package is available for  
  2301. $30.00 only through direct mail from Louis. 
  2302. Send Bank Check or Money Order to;* 
  2303. Surface Master
  2304. Computer Imagery
  2305. 49 Walnut Ave.
  2306. Shelton, CT 06484
  2307. Make checks payable to Louis Markoya
  2308. * Personal checks accepted, but shipment will be delayed for check 
  2309. clearance. 
  2310. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2311.  
  2312. ii) Review of Surface Master, by Richard Nollman:
  2313.  
  2314. I received my copy of Surface Master on Monday and within minutes it paid for
  2315. itself in time saved and frustration avoided.  Unless you are a master Turbo
  2316. and/or Imagine user, this program will save you hours (days, months, years?)
  2317. of experimentation.  
  2318. For those of you who might not have read the initial advertisement
  2319. posted last week, Surface Master is described as "a comprehensive
  2320. collection of Attribute and Texture settings which allows you to
  2321. master your renderings and achieve professional results."  The
  2322. software makes good on the promise.  
  2323. I am a novice 3D modeling, Imagine, and Amiga user (bought my 3000 at
  2324. the end of October). Within ten minutes I created an animation with a
  2325. gorgeous wood grain chesspiece and four reflective spheres with
  2326. varying reflection values on a blue highly reflective plane.  I have
  2327. been concentrating my time on just learning how to set the basic
  2328. attributes (to do things like glass, chrome, etc).  I thought that
  2329. things like texture mapping would have to wait.  Well, I loaded up
  2330. Surface Master, wrote down the values for the wood texture of a
  2331. Surface Master object (textures, unlike attributes, cannot be loaded
  2332. directly because they are not saved in the same way) and applied these
  2333. values to my chesspiece.  I was astounded at the quality of the
  2334. rendered image.
  2335. The first thing that struck me was the prompt arrival of the software.
  2336. I sent in a money order last week and received my copy on Monday.  
  2337. The software has a simple program that consists of two levels of
  2338. menus.  The first contains a matrix of windows with attributes and
  2339. textures that correspond to the ones found in the Imagine Attribute
  2340. requestor.  Click on an attribute or texture and next level menu
  2341. appears with 4 sets of 4 objects (spheres or cubes) rendered with
  2342. various settings for that attribute or texture.  Sometimes a window
  2343. will have several attributes described.  Each object has a value
  2344. assigned to it (R,G,and B values or a single value) that
  2345. you can write down on paper.  In most cases you do not have to; the
  2346. objects that appear in the Surface Master menus come in Surface Master
  2347. directories.  When you are working in Imagine, simply load in the
  2348. object or the attribute from the Surface Master directory.  Markoya
  2349. used them to create the Menu screens.  To get the texture values, load
  2350. in the objects with the texture values you want, invoke the Attribute
  2351. requestor for the object, choose texture, and write down the values.
  2352. Just one texture, wood, is worth the price of the package.  Surface
  2353. Master includes 16 different samples of wood grain combined with
  2354. linear, random and radiance(?).  In addition, there are 16 samples of
  2355. different types of wood (mahogony, ash, pine, oak, zebrawood, etc.).
  2356. In a few minutes, without having to puzzle over Imagine
  2357. documentation (which usually ends up providing little or no help), I
  2358. understood how to use the linear texture to create my wooden chesspiece.
  2359. For the color attribute, Surface Master includes a color wheel of
  2360. spheres.  Load these spheres individually as objects to your
  2361. rendering project or the attributes associated with them.  Very
  2362. helpful in getting just the right color for an object without having
  2363. to diddle around (or at least get a close approximation).  
  2364. Color and wood are only a few examples.
  2365. Finally, the documentation.  The manual is very small, but clearly and
  2366. thoroughly presented.  Each attribute and texture is described in
  2367. detail.  Impulse could learn alot about documentation from this
  2368. manual.  It packed so much information in such a small space that I
  2369. need to go back and read it several times to really get the meat of it
  2370. (mostly I was just eager to try out the software).  From many it will
  2371. probably become a standard text on Imagine attributes and textures.
  2372. And all for just $30.  Amazing...
  2373. My hats off to Louis Markoya.  I hope that he is going to continue to enhance
  2374. Surface Master.  I would love to see a disk of objects and other attributes.
  2375. Maybe an entire disk concentrating on reflection or chrome.  If he has more
  2376. Imagine-related software coming out, put me on the top of the list.
  2377. I do have one complaint.  It comes with what appears to be a projector 
  2378. program.  But it is not documented and I cannot figure out how it works.  
  2379. If anyone knows how to contact Louis, please pass this on.
  2380. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2381.  
  2382. iii) Review of Surface Master, by Harv Laser:
  2383.  
  2384. To explain this a little further, Surface Master is made up of a full
  2385. disk of some different parts:
  2386. -There's a Projector (tm Right Answers Grouop) sequence of screen shots
  2387. showing all the various attributes and textures available on the disk,
  2388. such as a screen full of wood spheres of different kinds of woods. I don't
  2389. remember offhand how many screen shots but at least a dozen.
  2390. -There's a directory full of objects from which all those screen shots
  2391. were made. Say you wanted to use Zebra wood on one of your objects in a
  2392. rendering. You'd load the zebra wood object (which you could see in the
  2393. slide show) into Imagne, select it and then select the attributes
  2394. requester, jot down the wood settings, then select your own object and
  2395. punch in those same settings to get that same wood. 
  2396. -There's a directory full of attribute settings for which you do not need
  2397. to load in Louis' objects nor copy down any settings. These attributes
  2398. can be loaded directly into the attribute requester and applied directly
  2399. to your own object - without interfacing at all with the "textures" that
  2400. come with Imagine.  Stainless Steel, Chrome, Emerald, Diamond, etc. would
  2401. be examples of attributes which can be loaded in right from disk without
  2402. textures, whereas Woods, Dots, Grids, Checks and other texture effects
  2403. require the extra step of loading in Louis' object and copying down and
  2404. then re-entering the textures for your own objects.  
  2405. The beauty of this disk is that Louis has done all the hard work. You 
  2406. don't have to sit there trying to figure out how to make something look
  2407. like chrome or like ivory. All the settings are on the disk in one of
  2408. the two forms described above along with pictures of them all. 
  2409. So it's a lot more than just a disk full of pretty pictures or numbers
  2410. painted on the screen. 
  2411. disclaimer: Louis Markoya is a friend of mine and he's marketing this
  2412. product on his own and I just want people to know that it exists. I
  2413. get no "cut" from the money he makes from it.
  2414. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2415.  
  2416. iv) Details, from Richard Nollman:
  2417.  
  2418. In response to a request to post the attributes and textures covered in the
  2419. Surface Master software, I post the following:
  2420. Spheres and cubes are rendered in color on menu screens (very nice)
  2421. with libraries of objects, attributes and textures included in the
  2422. package.  Each of the following categories displayed on a submenu screen:
  2423.  
  2424. Reflect/Filter   4 x 4 matrix of spheres with RGB and intensity values
  2425. Dithering/Roughness 2 x 4 matrix of spheres with intensity values (50-225)
  2426. Specular/Hardness   2 x 4 matrix of spheres with intensity values (50-225)
  2427. Color    49 colored spheres in a color wheel;9 spheres in grayscale
  2428. Shininess  3 x 4 matrix of spheres with shininess, filter, and index of 
  2429.            refraction values
  2430. Index of Refraction 3 x 3 matrix of spheres with intensity values (1-3.4)
  2431. Linear/Radial (textures)  4 x 3 matrix of spheres with transition width
  2432.                           and reflect/filter RGB values
  2433. Checks/Angular (textures) 4 x 3 matrix of spheres with angular, checksize,
  2434.                           and reflect/filter RGB values
  2435. Grid/Dots (textures)  4 x 4 matrix of cubes with gridsize, reflect/filter 
  2436.                   RGB, and dot spacing values
  2437. Bricks (texture)  4 x 4 matrix of cubes with XYZ shift, Y shift with Z value,
  2438.                   Z shift with Y value, and reflect/filter RGB values.
  2439. Disturbed (texture)  4 x 4 matrix of spheres with amount, wavelength, X 
  2440.                      separation, and small values
  2441. Wood (texture)  4 x 4 matrix of spheres with ring spacing, exponent, 
  2442.             variation and random seed values
  2443. Preset Materials    4 jewels (diamond, ruby, saphire, and emerald) and 12
  2444.                     spheres (glass, crystal, water, quartz, steel, pewter,
  2445.                     plastic, ivory, chrome, gold, brass, and copper)
  2446. Woods    12 spheres with the following types of wood: birch, mahogany, cherry
  2447.          oak, pine, red cedar, zebra wood, red mahogany, black walnut, ash
  2448.          walnut and tulip (? - can't read my own writing)
  2449. Combos   16 cube assortment demonstrating mixed textures including:
  2450.          wood/grid, grid/wood, linear/disturb, bricks/linear, bricks/wood,
  2451.          and bricks/linear
  2452.  
  2453. That's the list.  Have fun with it (I sure am).  Just want to mention that I
  2454. do not even know Louis Markoya so I am just posting this as a satisfied
  2455. customer.
  2456. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2457.  
  2458. APPENDIX F: TTDDD (an excellent shareware package).
  2459.  
  2460. i) getting coordinates with TTDDD.
  2461. ii) making threads.
  2462. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2463.  
  2464. i) Coordinates, by Glenn Lewis:
  2465.  
  2466. Doug>      First and foremost.... how can one get the coordinates out of
  2467. Doug> Imagine for the points without going to each one and writing down
  2468. Doug> the coordinates?
  2469.     Piece of cake.  Get TTDDD.zoo from ab20.larc.nasa.gov (I think
  2470. it is in the incoming/amiga directory).
  2471. Type: "ReadTDDD Enterprise.object > Enterprise.ttddd"
  2472.     Now take a look at "Enterprise.ttddd", and it's got all the
  2473. information you need, I believe.  Scott mentions some commercial package
  2474. that does the same thing.  TTDDD, like Scott's, works on Turbo Silver
  2475. objects, but it can read Imagine objects, and will simply skip the IFF
  2476. "chunks" that it doesn't understand (and will tell you what ones they
  2477. are).  Whenever I get the Imagine IFF format specification, I plan on
  2478. upgrading the TTDDD package.
  2479. Disclaimer:  TTDDD is ShareWare, written by myself.
  2480. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2481.  
  2482. ii) THREADS, by Glenn Lewis:
  2483.  
  2484. >>>>> On Mon, 25 Mar 91 20:58:40 EST, spworley@ATHENA.MIT.EDU said:
  2485. Steve> Anyone have any good ideas on how to make threads, like on a
  2486. Steve> bolt?
  2487.     Sure.  Piece of cake.  In the last twenty minutes, I cooked up a
  2488. little Perl script that creates a threaded object whose parameters I can
  2489. control.  I used, of course, WriteTDDD.  In fact, here is what I typed:
  2490. thread 60 0.5 10 4 5 | WriteTDDD > thread.tddd
  2491. Here is the Usage information:
  2492. Usage: thread NUMPTS SPACING HEIGHT IN_RADIUS OUT_RADIUS
  2493. where NUMPTS is the number of point in a single revolution
  2494.       SPACING is the number of units between threads
  2495.       HEIGHT is the total height of the bolt.
  2496.       IN_RADIUS is the radius of the inner thread.
  2497.       OUT_RADIUS is the radius of the outer thread.
  2498.     Does this sound like something you would want, Steve?
  2499.     Unfortunately, I don't have my Amiga with me right here, so I
  2500. can not see if it looks like what you want.  So I'll send you the
  2501. object, Steve, and let you take a look at it.
  2502.     Nevertheless, here is the Perl script that I used to create it.
  2503. If anybody doesn't know what TTDDD is, you can grab it off of
  2504. ab20.larc.nasa.gov and it will give you more information.  It stands for
  2505. "Textual Three Dimension Data Description", and was written by me.
  2506.     Have fun.
  2507.                         -- Glenn Lewis
  2508.  
  2509. ********************************************************************************
  2510.  
  2511. #!/usr/local/mcfg/bin/perl
  2512. if ($#ARGV < 4) {
  2513.     print STDERR "Usage: $0 NUMPTS SPACING HEIGHT IN_RADIUS OUT_RADIUS\n";
  2514.     print STDERR "where NUMPTS is the number of point in a single revolution\n";
  2515.     print STDERR "      SPACING is the number of units between threads\n";
  2516.     print STDERR "      HEIGHT is the total height of the bolt.\n";
  2517.     print STDERR "      IN_RADIUS is the radius of the inner thread.\n";
  2518.     print STDERR "      OUT_RADIUS is the radius of the outer thread.\n";
  2519.     exit(0);
  2520. }
  2521. print
  2522. "/* thread.ttddd - Written by Glenn M. Lewis - 3/26/91\
  2523.  * Steve Worley had asked on the Imagine mailing list how to create\
  2524.  * a thread-like object for Imagine.  Instead of saying 'how about\
  2525.  * using TTDDD to create it, I thought... I'll see if I can create\
  2526.  * a thread using TTDDD.  Since my Amiga isn't handy, I'll let somebody\
  2527.  * else pump this through WriteTDDD to get an object and check it out.\
  2528.  */\
  2529. \
  2530. OBJ Begin\
  2531. DESC Begin\
  2532.   NAME \"Thread\"\
  2533.   SHAP Shape 2\
  2534.   SHAP Lamp 0\
  2535. ";
  2536. # OK.  Start calculating the position of the points, edges, and faces...
  2537. $NUMPTS     = $ARGV[0];
  2538. $SPACING    = $ARGV[1];
  2539. $HEIGHT     = $ARGV[2];
  2540. $IN_RADIUS  = $ARGV[3];
  2541. $OUT_RADIUS = $ARGV[4];
  2542. $PI=3.14159265;
  2543. #
  2544. # Calculate the points needed...
  2545. #
  2546. $height = 0.0;
  2547. $heightstep = $SPACING/$NUMPTS;
  2548. $theta = 0.0;
  2549. $thetastep = $PI/$NUMPTS;
  2550. $count = 0;
  2551. while ($height < $HEIGHT) {
  2552.     $outer_x[$count] = sin($theta) * $OUT_RADIUS;
  2553.     $outer_y[$count] = cos($theta) * $OUT_RADIUS;
  2554.     $outer_z[$count] = $height;
  2555.     $theta += $thetastep;
  2556.     $inner_x[$count] = sin($theta) * $IN_RADIUS;
  2557.     $inner_y[$count] = cos($theta) * $IN_RADIUS;
  2558.     $inner_z[$count] = $height;
  2559.     $theta += $thetastep;
  2560.     $count++;
  2561.     $height += $heightstep;
  2562. }
  2563. #
  2564. # Start writing the TTDDD data...
  2565. #
  2566. # First, list the points...
  2567. #
  2568. printf("  PNTS Pcount %d\n", $count*2);
  2569. $edge = 0;
  2570. for ($i=0; $i<$count; $i++) {
  2571.     printf("    PNTS Point %d %g %g %g\n", $i*2,
  2572.         $outer_x[$i], $outer_y[$i], $outer_z[$i]);
  2573.     printf("    PNTS Point %d %g %g %g\n", $i*2+1,
  2574.         $inner_x[$i], $inner_y[$i], $inner_z[$i]);
  2575.     # Count up the number of edges we need
  2576.     if ($i<$count-1) {
  2577.         $edge += 3;                         # O[i]..O[i+1]..I[i]..O[i]
  2578.         if ($i>=$NUMPTS) { $edge += 3; }    # I[i]..I[i+1]..O[i-N]..I[i]
  2579.         if ($i+1<$count) { $edge += 3; }    # O[i+1]..I[i+1]..I[i]..O[i+1]
  2580.        if ($i>=$NUMPTS) { $edge += 3; }    # I[i+1]..O[i+1-N]..O[i-N]..I[i+1]
  2581.     }
  2582. }
  2583. #
  2584. # Second, list the edges...
  2585. #
  2586. printf("\n  EDGE ECount %d\n", $edge);
  2587. $e=0;
  2588. $face = 0;
  2589. for ($i=0; $i<$count-1; $i++) {
  2590.     printf("    EDGE Edge %d %d %d\n", $e++, $i*2, ($i+1)*2);
  2591.     printf("    EDGE Edge %d %d %d\n", $e++, ($i+1)*2, $i*2+1);
  2592.     printf("    EDGE Edge %d %d %d\n", $e++, $i*2+1, $i*2);
  2593.     $face++;
  2594.     if ($i>=$NUMPTS) {
  2595.         printf("    EDGE Edge %d %d %d\n", $e++, $i*2+1, ($i+1)*2+1);
  2596.         printf("    EDGE Edge %d %d %d\n", $e++, ($i+1)*2+1, ($i-$NUMPTS)*2);
  2597.         printf("    EDGE Edge %d %d %d\n", $e++, ($i-$NUMPTS)*2, $i*2+1);
  2598.         $face++;
  2599.     }
  2600.     if ($i+1<$count) {
  2601.         printf("    EDGE Edge %d %d %d\n", $e++, ($i+1)*2, ($i+1)*2+1);
  2602.         printf("    EDGE Edge %d %d %d\n", $e++, ($i+1)*2+1, $i*2+1);
  2603.         printf("    EDGE Edge %d %d %d\n", $e++, $i*2+1, ($i+1)*2);
  2604.         $face++;
  2605.     }
  2606.     if ($i>=$NUMPTS) {
  2607.       printf("    EDGE Edge %d %d %d\n", $e++, ($i+1)*2+1, ($i+1-$NUMPTS)*2);
  2608.      printf("    EDGE Edge %d %d %d\n",$e++,($i+1-$NUMPTS)*2,($i-$NUMPTS)*2);
  2609.         printf("    EDGE Edge %d %d %d\n", $e++, ($i-$NUMPTS)*2, ($i+1)*2+1);
  2610.         $face++;
  2611.     }
  2612. }
  2613. #
  2614. # Third, list the faces...
  2615. #
  2616. printf("\n  FACE Tcount %d\n", $face);
  2617. $e=0;
  2618. $f=0;
  2619. for ($i=0; $i<$count-1; $i++) {
  2620.     printf("    FACE Connect %d %d %d %d\n", $f++, $e++, $e++, $e++);
  2621.     if ($i>=$NUMPTS) {
  2622.         printf("    FACE Connect %d %d %d %d\n", $f++, $e++, $e++, $e++);
  2623.     }
  2624.     if ($i+1<$count) {
  2625.         printf("    FACE Connect %d %d %d %d\n", $f++, $e++, $e++, $e++);
  2626.     }
  2627.     if ($i>=$NUMPTS) {
  2628.         printf("    FACE Connect %d %d %d %d\n", $f++, $e++, $e++, $e++);
  2629.     }
  2630. }
  2631. #
  2632. # Now wrap up the object description...
  2633. #
  2634. print "\nEnd DESC\nTOBJ\nEnd OBJ\n";
  2635. exit(0);
  2636. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2637.  
  2638. APPENDIX G:  WAY COOL PROJECTS
  2639.  
  2640. i) extruding picture
  2641. ii) rolling sphere
  2642. iii) 3-D font
  2643. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2644.  
  2645. i) Way cool project 1, by Steve Worley:
  2646.  
  2647. This was way-cool! Try it.
  2648. Get an object. A sphere will do, but whatever you want.
  2649. FLAT map a brush onto it. Make sure the brush Y axis is bigger than the
  2650. object, make sure the object just fits in the positive x positive z quadrant.
  2651. Go to "transform axis" in the brush requestor, select "size", then write down
  2652. the x & z scalings.
  2653. Make a plane. Map the same brush on it. Use transform to get the same size. 
  2654. make sure the plane's size is at least as large as the brush.
  2655. Go to the stage editor.
  2656. Put the object DIRECTLY behind the plane. Orientation and position are
  2657. critical- you want the brush maps to line up. [They're the same size.].
  2658. Put the camera on a 45 degree view so you don't have a dead on shot.
  2659. Make a path that moves the object straight THROUGH the plane, for about 20
  2660. frames.
  2661. Animate it!
  2662. Here's what you'll see. You'll see a flat picture slowly take on a three-d
  2663. form, "extruding" exself into a third dimension. The join between plane
  2664. and object is indetectable because the brush maps are identical. 
  2665. This effect is REALLY cool, though you have to be careful to line everything
  2666. up right. Use  "transform" to set position and orientation of the
  2667. objects and their maps exactly if you're having trouble.
  2668. You can render this in scanline- it doesn't need trace.
  2669. You could make a room with a framed picture (I have a REALLY nice picture
  2670. frame) with a picture of something on it. Camera moves to an oblique view,
  2671. zooms in a little, picture starts "extruding." Maybe out a little, then back,
  2672. then out then back, then finally, the object finally makes it all the way
  2673. out (and the picture behind has a new brush map without the object!). Then
  2674. the released thing (whatever!) could explore the "Real World". An idea. Run
  2675. with it if you like, post how it goes.
  2676. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2677.  
  2678. ii) Way cool project two, by Steve Worley:
  2679.  
  2680. I've been working on an animation that seems to be coming out 
  2681. very nicely- there's a couple of techniques dealing with brushes
  2682. that people might find very useful.
  2683.  
  2684. I created a still first. It started as a "mirrored balls on a checkerboard"
  2685. setup, with the centerpiece being a big, black, glossy sphere with
  2686. a picture of me "trapped" inside the sphere. Later I turned it into
  2687. an animation with the camera moving about so that you could see the 
  2688. different sides. It looked cool- the real goal was to see how well
  2689. a "traditional" mirror & glass sphere populated plain would look.
  2690.  
  2691. It turned out so well that I changed the animation to a still camera
  2692. and having the ball roll around the scene, in front of mirror-balls
  2693. and in back of glass balls to see the neat effects. [Remember the
  2694. long transparency essay I wrote? I was tweaking the crystal spheres
  2695. for this anim.] Making the ball roll was a trick. How do you get 
  2696. something to roll (at the right speed!) while following a path? Getting
  2697. it to spin (like a plane doing a barrel roll) is easy- you align to
  2698. path, then set Y rotation to be from 0 to 360 and it will do a complete
  2699. spin. This is not in the right direction for a rolling ball, though.
  2700. [Annoying feature- you can't say from 0 to 720 for two spins, 
  2701. or 0 to 3600 for ten.] To get it to roll I created a second path, which
  2702. was basically a  larger copy of the first, so the first path was 
  2703. just inside of the second path. I had an axis (a track) follow this 
  2704. new, outside path, then used "align to object" to make the sphere point
  2705. to the axis. Thus, as the ball moved along its path, one end (the positive
  2706. Y axis direction) was always pointed at right angles to the direction
  2707. of motion. Is this clear? Now using the "initial Y angle" and "final Y
  2708. angle" I set them to 0 and 360 and it rotated as it rolled. As a special
  2709. effect, I raised the "track path" a little in the Z direction so the
  2710. sphere looks a little bit like a top rolling around, since the spin
  2711. axis was not horizontal anymore.
  2712.  
  2713. An alternative would be to make a cycle object, rolling around the X axis.
  2714. This is equally valid, but I did it this way first.
  2715.  
  2716. The picture of me on the sphere was pretty easy. I used Digi-View
  2717. to take a picture of me with a scared/concerned expression and 
  2718. my hands palm forward outstretched a little. I stood in front of a 
  2719. clean, white background. I saved the pic as an IFF24 picture from Digi-
  2720. View, and used The Art Department to balance it. Digi-view's balancing
  2721. controls are fine- TAD has a couple of nice features, though, like
  2722. scaling and especially gamma correction, which increases contrast by
  2723. expanding color scales. (I'll explain if someone wants me to.) I saved
  2724. the pic as a 900x600 16 color IFF, then loaded it into Deluxe Paint III.  
  2725.  
  2726. Deluxe Paint is a wonderful program, and has no objection to loading large
  2727. IFFs. I touched up a couple scanning artifacts with the smooth and blend
  2728. tools, then removed the background. To do this, I first used the filled
  2729. rectangle tool to fill in the big, easy to clear spots of background 
  2730. (a wall in my case). I then used the stencil (frisket to you Disney 
  2731. folks) to let only the brightest few whites be changable. A pass or two with
  2732. a big brush along the edge of my body, and woosh- the background was gone. 
  2733. I then added a new background ( a grid of white lines) by picking my body
  2734. up as a brush and stamping it on a grid I made on the spare page. I saved
  2735. the picture, and I was done!
  2736.  
  2737. Imagine does not care what size the picture it maps is- they all get 
  2738. normalized to the brush-axis dimension. Thus, my LARGE picture was of 
  2739. significantly better quality than just a screenful. Optimally, if I had a 
  2740. 24 bit paint program, like the Firecracker paint program, Colorburst's 
  2741. paint program, or Toasterpaint, this would have given the highest quality 
  2742. output. Anyone want to give me a Colorburst?
  2743.  
  2744. Wrapping is an art, and everyone should read Mike Halvorson's brush-wrapping
  2745. posted about 2 weeks ago. Its pretty good, though he mis-describes Y axis
  2746. functionality in wrap-wraps, but not in flat-flats (though maybe I'm wrong).
  2747. Luckily, wrapping spheres is a snap- you can't screw up as long as your 
  2748. brush's Y axis is smaller than the radius, and the axis is centered. 
  2749. Complex shapes are much more difficult, and best described in another post 
  2750. sometime. [Like after I can do them consistantly!]
  2751.  
  2752. Anyway, the result mapped onto the sphere looks real cool. The grid wraps 
  2753. around the sphere like longitude/latitude lines, and I was smart and made 
  2754. my grid match up from one side to the other. This made the join on the back 
  2755. of the sphere look UTTERLY undetectable, so it isn't obvious this is a flat 
  2756. object wrapped onto a curve.
  2757.  
  2758. I rendered this 80 frame anim over about 6 days, (hires raytrace) and 
  2759. it was beautiful! The glass in particular looked sleek. I then wanted to
  2760. spiff it up even more, so I added a glass arch (half a stretched torus) for
  2761. the prison-sphere to roll though, and I animated myself on the sphere.
  2762.  
  2763. How did I animate myself on the sphere?? This is a VERY useful trick, and
  2764. I learned it long before I had Imagine, when I was into DPaint anims. What I
  2765. did was I took a camera and VIDEOTAPED myself kinda waving my hands around
  2766. like a mime (the invisible wall in front of me, palms outward)
  2767. with the concerned/scared look on my face. After a few takes, I thought I had
  2768. the  right feel, so I booted my 3000 [well, sat down in front of it- its
  2769. always on!]  and started Digiview.
  2770.  
  2771. Time out: IMPORTANT! Digiview DOES work on a 3000- you must use 'CPU
  2772. nocache noburst' before you start Digiview, or it will die! I almost sold
  2773. my DV until I said "hmm. I'll try one more time. What if I .." and it worked.
  2774.  
  2775. Anyway, I played the tape and freeze-framed on the start of the part I liked.
  2776. YOU CAN'T USE A CHEESY 2-HEAD VCR! You need good stills.I digitized a frame, 
  2777. then spent a good 10 minutes perfecting the balances. [I didn't use TAD 
  2778. because it would have been a pain saving all the frames (1/2 meg each!) and
  2779. loading/balancing/saving them again. ADPro has an AREXX interface, and so 
  2780. does Digi-view. This would have been an IDEAL application of AREXX!] Once I
  2781. had the balance perfected, I re-digitized, balanced, and saved the picture as
  2782. 'steve001'. The 001 is important- if you save it as 'steve1' it will be 
  2783. a bit harder to load into DPAINT. [You'll see!] I then forwarded 3 frames,
  2784. and digitized, and saved as 'steve002'. I did this for 40 frames. Yes, its
  2785. mind-numbing, but really only takes half an hour, and you can be listening
  2786. to tunes or talking on the phone or whatever. 
  2787.  
  2788. Finally, I started DPaint, and blessed my extra RAM. I went into 'load 
  2789. picture', selected file 'steve001' and at the bottom of the name requester, 
  2790. entered '40 frames'. Dpaint then loaded the next 40 frames (alphabetically) 
  2791. as an anim.  See why we have steve001? It loads steve001 to steve0040 
  2792. correctly. If I used 'steve1' the order would be steve1,steve10, steve11, 
  2793. ... steve19, steve2, steve20 and so on.
  2794.  
  2795. OK, I have an anim. I play it, and voila! There I am, looking like a person
  2796. acting like he's trapped in a sphere! :-)  The quality of this method is
  2797. SURPRISINGLY good. Try it- even if you don't use Imagine. It's lots of fun!
  2798. 320 by 400 animates faster if you're not doing it for Imagine, but just
  2799. want to muck around. [well worth it!] Here's an idea- tape yourself throwing
  2800. and catching a volleyball, then digitize your best friend. Remove his or her
  2801. head as a brush, then paste a copy of the head on top of the ball in every
  2802. frame of your anim. Voila! Macabre juggling! Works really well if they're 
  2803. smiling.
  2804.  
  2805. Back to the Imagine anim. I digitized in hi-res for quality- it doesn't
  2806. animate as well in DPaint (more bandwith -> slower anims) but for our
  2807. purposes this makes no difference at all. I cleaned out the background 
  2808. for all the frames by using "anim-painting"- holding down the left-amiga
  2809. as you paint. [3000 owners, you might have to change the WB prefs- this
  2810. is the default way to drag screens] By using big brushes for the easy stuff, 
  2811. then stencils, a smaller brush, and a much slower pace for the edges near my 
  2812. body, I removed the background from all the frames. 
  2813.  
  2814. I picked up my body as an animbrush, then anim-painted onto a 40 frame anim
  2815. of a stationary grid. I then used "save picture" [NOT anim!] and saved 40
  2816. frames as stevebg.. DPaint is smart, and makes stevebg001, stevebg002,... and
  2817. so on.
  2818.  
  2819. Now what? To Imagine! I call up my project, which currently has a static 
  2820. brush on the sphere. If I were starting from scratch, I would render the 
  2821. anim in HAM scanline to insure the pacement of the brush and feel of the 
  2822. anim.  Once you animate the brush, it is not a trivial matter to change its
  2823. position on the object you're wrapping. 
  2824.  
  2825. However, I have already done a static test. I know that my brush is in a 
  2826. good position- I'm upright and centered just as I pass the camera- a good 
  2827. shot. I then went into the detail editor and loaded sphere.iob [my 
  2828. _I_magine _OB_ject] and entered the attributes selector, and select the 
  2829. brush map already there. I changed the picture filename in the gadget to 
  2830. say 'stevebg.001' and exited and saved the object as sphere001.iob. I then 
  2831. went back to the brush name, changed it to 'stevebg002' and saved the sphere
  2832. as sphere002.iob. Note there is no need to RELOAD the sphere- I just save 
  2833. it. This goes by VERY fast once you get started, and I had 40 objects in 5 
  2834. minutes. Also, every sphere has the same attributes and same brush position,
  2835. etc. The only thing to change is the name of the brushmap.
  2836.  
  2837. To the stage editor! I already had my rolling sphere set up- remember, I
  2838. did a static version before that looked good. I deleted the "actor" that was
  2839. my sphere, keeping the position and alignment that were already there.
  2840. I then added a new actor from frame 1 to frame 1 called sphere001.iob.
  2841. I then added a new actor from frame 2 to frame 2 called sphere002.iob.
  2842. I then added a new actor from frame 3 to frame 3 called sphere003.iob.
  2843. I then added a new actor from frame 4 to frame 4 called sphere004.iob.
  2844. .....
  2845. I then added a new actor from frame 40 to frame 40 called sphere040.iob.
  2846. I then added a new actor from frame 41 to frame 41 called sphere041.iob.
  2847. ....
  2848. and so on. My anim was such that my repetitive motion made a pretty clean
  2849. transition from beginning to end [in DPaint] so repeating it looked all
  2850. right. If not, ping-ponging would have worked [instead of 1 2 3 4 1 2 3 4 
  2851. 1 ...  it goes 1 2 3 4 4 3 2 1 1 2 ...] Also, I made sure the best views 
  2852. (by the camera) didn't have a transition, anyway. Entering the 80 objects 
  2853. again is boring, but the file requestor is fast enough (and has last file 
  2854. defaults!) so it only took 10 minutes. Alternatively, it might have been 
  2855. neat to see what morphs would do- this would fade out one frame while 
  2856. bringing in the next (I think) and might be worth trying sometime. This 
  2857. would be done by changing the object every other frame (or even less often)
  2858. and setting the # of transition frames to 1 or more.
  2859.  
  2860. Well, thats it! The ray-traced anim is rendering now- the scanline version
  2861. showed me waving around just fine, and it really looked smooth! I thought
  2862. that people might like to try this technique- its roundabout, but the
  2863. results are worth it! 
  2864.  
  2865. A note- Animation Journeyman (another renderer) supports animbrushes... must
  2866. be nice, though I haven't seen it.
  2867.  
  2868. If anyone wants me to clarify anything I'll be happy to. This little 
  2869. essay has grown a bit in length... :-) I won't be able to post the final
  2870. anim, its HUGE!, as is the project itself (40 pictures, > 40 objects..)
  2871. though I might put a still or two on ab20 if people want me to.
  2872.  
  2873. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2874.  
  2875. iii) 3-D FONT, by Steve Worley:
  2876.  
  2877. I was mucking around trying to make a new "Imagine" picture for the startup
  2878. sequence, and thought it might be neat to ray-trace a nice version.
  2879. The question is what is the best way to get nice 3D fonts? Well, you get
  2880. a nice big font (I used my Pro-Page Helvetica-Bold at about 80 pixels high)
  2881. and save the word(s) as a picture, then convert this to an outline in
  2882. the Detail editor and extrude. You can auto-face using "slice", being careful
  2883. to only slice 2 or 3 letters at once to keep an Imagine bug at bay. [It will
  2884. hang if you have too many letters. It's not the number of points- perhaps
  2885. too many pieces. Anyway, a bug. 
  2886. This gives you a nice 3D font. 
  2887. Well, not really. It gives you a 3D font, but to be honest, its kinda boring.
  2888. Its just flat letters with depth. Ugh.
  2889. Wouldn't some neat color or chiseled edges or something help?
  2890. "Yes!" I said to myself. Beveled edges all the way around would look 
  2891. way-cool! OK, lessee, I can put a smaller copy of each letter on top of
  2892. itself, um, no, I could drag the points on the outline in, um, no, argh!!!
  2893. It is VERY difficult! I couldn't come up with a good way to do it. Remember,
  2894. you don't want a letter becoming smaller as it reaches the surface of the
  2895. letter, you want it to become THINNER. A smaller copy on top would make
  2896. a cone-like effect. Not what I'm looking for.
  2897. Finally, I came up with a method that worked really well. First, go into
  2898. DPaint and pick up your word or whatever as a brush. Then use shift-O to
  2899. THIN the brush. I thinned three times- you might do more with a bigger
  2900. font, less with a smaller font. An font less than about 50 pixels high
  2901. is gonna die.
  2902. I then saved the picture with "IMAGINE" stamped on it twice- thick and thin.
  2903. I loaded it into Imagine and converted to an outline.
  2904. Now, I wanted to make a surface that went from the big outline to the thinner
  2905. one. An ideal job for skin, right? Yes! 
  2906. Well, almost. Skin requires both objects to have the same number of points.
  2907. (What would it do with the extras on one or the other?) The thinned letters
  2908. were considerably more complex than their thick versions. [The curves were
  2909. tighter, and right angles were rounded.] 
  2910. What I did was copy the thick font's outline, and superimposed it onto the
  2911. thin version. Then I used "drag points" on each letter to make the big font
  2912. look just like the thinned one. I also used my judgement in what looked good-
  2913. the thinned font was a guide, not an absolute.
  2914. When I was done, I deleted my original thin letters. I was left with 
  2915. "IMAGINE" in normal letters, and "IMAGINE" with thin letters. Both versions
  2916. had the same number of points.
  2917. The letters should have some depth, so I copied the thick version again,
  2918. and extruded it into a tube. 
  2919. To make the chiseled faces, I placed the thin version directly on top
  2920. of the un-extruded version, then raised it up a little bit in the
  2921. direction towards me. Then I picked them both and skinned. 
  2922. Putting a front face on the letters was pretty easy. I just used the
  2923. slice method shown in the tutorial manual. Messy, but it works. I used a HUGE
  2924. triangle (primitive plane, one corner deleted) placed over the IMAG
  2925. letters at a depth JUST under the thin letters, and sliced. I deleted 
  2926. the crufty leftovers (the outside triangle bits, the VERY small parts
  2927. chopped from the skinned chisel section). I repeated for the INE 
  2928. letters. I then selected all of the faces and chisel parts, and JOINED
  2929. them into one object.
  2930. I was then left with an "tube" and a "cap". I placed the cap (the
  2931. front face and chisel edge) directly over the tube and joined them
  2932. both. I didn't bother with a back face, but you could face it if you
  2933. like, or even copy the cap and scale it in its depth direction by -1
  2934. to get an inverted version that will fit on the back.
  2935. Thats it! I used "merge" at the end to connect everything together. Be
  2936. careful to turn Phong _OFF_. You WANT a faceted appearance.
  2937. I haven't completed the picture, and I should really work on my water
  2938. waves. Or my thesis. Sigh.
  2939. Anyway, the final letters looked VERY slick. Try it!
  2940. Another idea would be using the letters to slice out a hollow in a
  2941. solid object, to get a carved/stamped surface.
  2942. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2943.  
  2944. APPENDIX H: Credits and email addresses
  2945. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2946.  
  2947.  Sandy Antunes     (antunes@astro.psu.edu)
  2948.  Edward Chadez     (echadex@carl.org) Colorado Alliance of Research Libraries
  2949.  Mark Davis        (davis@soomee@rust.enet.dec.com)
  2950.  Matt Feifarek     (mattf@picard.cs.wisc.edu)
  2951.  Duane Fields      (n350bq@tamuts.tamu.edu)
  2952.  Kevin Goroway     (pawn@wpi.wpi.edu)
  2953.  Mike Halvorsen
  2954.  Jim Lange         (jlange@oracle.com) Oracle Corporation
  2955.  Harv Laser        ({anywhere}!crash!hrlaser)
  2956.  Glenn Lewis       (glewis%pcocd2.intel.com@Relay.CS.Net)
  2957.  Mark D. Manes     (manes@vger.nsu.edu)
  2958.  Stephen Menzies   (S.Menzies@CAM.ORG)
  2959.  Richard Nollman   (rnollman@maxzilla.encore.com)
  2960.  Helge Egelund Rasmussen   (her@compel.dk)
  2961.  Marc Rifkin       (r38@psuvm.psu.edu)
  2962.  Dave Schreiber    (davids@slugmail.ucsc.edu)
  2963.  Udo Schuermann    (walrus@wam.umd.edu)
  2964.  Sean Schur        (schur@isi.edu) California Institute for the Arts
  2965.  Bill Squier       (u93_wsquier@vaxa.stevens-tech.edu)
  2966.  Colin Stobbe      (umstobb1@ccu.umanitoba.ca)
  2967.  Scott Sutherland
  2968.  Mark Thompson     (mark@westford.ccur.com) Radiant Image Productions
  2969.  Juan Trevino      (tucker@mammoth.cs.unr.edu)
  2970.  Steven Webb       (webbs@handel.cs.colostate.edu)
  2971.  Robert Wallace
  2972.  Don Whitaker      (dcwhitak@nyx.cs.du.edu)
  2973.  Steve Worley      (spworley@athena.mit.edu)
  2974.  (denbeste@ursa-major.spdcc.com)
  2975. ============================= END OF FILE ===============================
  2976.